scripts/build/companion_libs/gmp.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Dec 30 15:36:22 2009 +0100 (2009-12-30)
changeset 1669 61edd9d19e3c
parent 1383 46658e3fc781
child 1808 a1370757e6a1
permissions -rw-r--r--
scripts/functions: add aria2, a powerfull downloader

aria2 is a powerfull downloader that is capable of chunking and
parallel retrieval.

Due to li;itations in crosstool-NG retrieval facilities, it's not possible
to take fully advantage of aria2. It might happen that, in the future,
those limitations get lifted away, so we can take use features such as
parallel downloading from more than one server at the same time. For now,
it should still speed up downloads thanks to parallel downloading of chunks.
     1 # This file adds the functions to build the GMP library
     2 # Copyright 2008 Yann E. MORIN
     3 # Licensed under the GPL v2. See COPYING in the root of this package
     4 
     5 do_gmp_get() { :; }
     6 do_gmp_extract() { :; }
     7 do_gmp() { :; }
     8 do_gmp_target() { :; }
     9 
    10 # Overide functions depending on configuration
    11 if [ "${CT_GMP_MPFR}" = "y" ]; then
    12 
    13 # Download GMP
    14 do_gmp_get() {
    15     CT_GetFile "gmp-${CT_GMP_VERSION}" {ftp,http}://{ftp.sunet.se/pub,ftp.gnu.org}/gnu/gmp
    16 }
    17 
    18 # Extract GMP
    19 do_gmp_extract() {
    20     CT_Extract "gmp-${CT_GMP_VERSION}"
    21     CT_Patch "gmp-${CT_GMP_VERSION}"
    22 }
    23 
    24 do_gmp() {
    25 
    26     mkdir -p "${CT_BUILD_DIR}/build-gmp"
    27     cd "${CT_BUILD_DIR}/build-gmp"
    28 
    29     CT_DoStep INFO "Installing GMP"
    30 
    31     CT_DoLog EXTRA "Configuring GMP"
    32 
    33     CFLAGS="${CT_CFLAGS_FOR_HOST} -fexceptions"     \
    34     CT_DoExecLog ALL                                \
    35     "${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \
    36         --build=${CT_BUILD}                         \
    37         --host=${CT_HOST}                           \
    38         --prefix="${CT_PREFIX_DIR}"                 \
    39         --enable-shared                             \
    40         --disable-static                            \
    41         --enable-fft                                \
    42         --enable-mpbsd                              \
    43         --enable-cxx
    44 
    45     CT_DoLog EXTRA "Building GMP"
    46     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    47 
    48     if [ "${CT_COMP_LIBS_CHECK}" = "y" ]; then
    49         CT_DoLog EXTRA "Checking GMP"
    50         CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
    51     fi
    52 
    53     CT_DoLog EXTRA "Installing GMP"
    54     CT_DoExecLog ALL make install
    55 
    56     CT_EndStep
    57 }
    58 
    59 if [ "${CT_COMP_LIBS_TARGET}" = "y" ]; then
    60 
    61 do_gmp_target() {
    62     mkdir -p "${CT_BUILD_DIR}/build-gmp-target"
    63     cd "${CT_BUILD_DIR}/build-gmp-target"
    64 
    65     CT_DoStep INFO "Installing GMP for the target"
    66 
    67     CT_DoLog EXTRA "Configuring GMP"
    68     CFLAGS="${CT_CFLAGS_FOR_TARGET}"                \
    69     CT_DoExecLog ALL                                \
    70     "${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \
    71         --build=${CT_BUILD}                         \
    72         --host=${CT_TARGET}                         \
    73         --prefix=/usr                               \
    74         --disable-shared                            \
    75         --enable-static                             \
    76         --enable-fft                                \
    77         --enable-mpbsd                              \
    78 
    79     CT_DoLog EXTRA "Building GMP"
    80     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    81 
    82     # Not possible to check MPFR while X-compiling
    83 
    84     CT_DoLog EXTRA "Installing GMP"
    85     CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install
    86 
    87     CT_EndStep
    88 }
    89 
    90 fi # CT_GMP_MPFR_TARGET == y
    91 
    92 fi # CT_GMP_MPFR == y