scripts/build/companion_libs/gmp.sh
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 2929 22e495b7bee8
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
yann@466
     1
# This file adds the functions to build the GMP library
yann@466
     2
# Copyright 2008 Yann E. MORIN
yann@466
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@466
     4
yann@602
     5
do_gmp_get() { :; }
yann@602
     6
do_gmp_extract() { :; }
yann@2929
     7
do_gmp_for_build() { :; }
yann@2927
     8
do_gmp_for_host() { :; }
yann@602
     9
yann@602
    10
# Overide functions depending on configuration
yann@2099
    11
if [ "${CT_GMP}" = "y" ]; then
yann@468
    12
yann@466
    13
# Download GMP
yann@466
    14
do_gmp_get() {
yann@1119
    15
    CT_GetFile "gmp-${CT_GMP_VERSION}" {ftp,http}://{ftp.sunet.se/pub,ftp.gnu.org}/gnu/gmp
yann@466
    16
}
yann@466
    17
yann@466
    18
# Extract GMP
yann@466
    19
do_gmp_extract() {
yann@1126
    20
    CT_Extract "gmp-${CT_GMP_VERSION}"
yann@1901
    21
    CT_Patch "gmp" "${CT_GMP_VERSION}"
yann@466
    22
}
yann@466
    23
yann@2929
    24
# Build GMP for running on build
yann@2929
    25
# - always build statically
yann@2929
    26
# - we do not have build-specific CFLAGS
yann@2929
    27
# - install in build-tools prefix
yann@2929
    28
do_gmp_for_build() {
yann@2929
    29
    local -a gmp_opts
yann@2929
    30
yann@2929
    31
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2929
    32
        native|cross)   return 0;;
yann@2929
    33
    esac
yann@2929
    34
yann@2929
    35
    CT_DoStep INFO "Installing GMP for build"
yann@2929
    36
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-gmp-build-${CT_BUILD}"
yann@2929
    37
yann@2929
    38
    gmp_opts+=( "host=${CT_BUILD}" )
yann@2929
    39
    gmp_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
yann@2929
    40
    do_gmp_backend "${gmp_opts[@]}"
yann@2929
    41
yann@2929
    42
    CT_Popd
yann@2929
    43
    CT_EndStep
yann@2929
    44
}
yann@2929
    45
yann@2927
    46
# Build GMP for running on host
yann@2927
    47
do_gmp_for_host() {
yann@2927
    48
    local -a gmp_opts
yann@466
    49
yann@2927
    50
    CT_DoStep INFO "Installing GMP for host"
yann@2927
    51
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-gmp-host-${CT_HOST}"
yann@2927
    52
yann@2927
    53
    gmp_opts+=( "host=${CT_HOST}" )
yann@2931
    54
    gmp_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" )
yann@2927
    55
    gmp_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
yann@2927
    56
    do_gmp_backend "${gmp_opts[@]}"
yann@2927
    57
yann@2927
    58
    CT_Popd
yann@2927
    59
    CT_EndStep
yann@2927
    60
}
yann@2927
    61
yann@2927
    62
# Build GMP
yann@2927
    63
#     Parameter     : description               : type      : default
yann@2927
    64
#     host          : machine to run on         : tuple     : (none)
yann@2927
    65
#     prefix        : prefix to install into    : dir       : (none)
yann@2927
    66
#     cflags        : host cflags to use        : string    : (empty)
yann@2927
    67
do_gmp_backend() {
yann@2927
    68
    local host
yann@2927
    69
    local prefix
yann@2927
    70
    local cflags
yann@2927
    71
    local arg
yann@2927
    72
yann@2927
    73
    for arg in "$@"; do
yann@2927
    74
        eval "${arg// /\\ }"
yann@2927
    75
    done
yann@466
    76
yann@466
    77
    CT_DoLog EXTRA "Configuring GMP"
yann@1324
    78
yann@2346
    79
    CT_DoExecLog CFG                                \
yann@2927
    80
    CFLAGS="${cflags} -fexceptions"                 \
yann@1119
    81
    "${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \
yann@1119
    82
        --build=${CT_BUILD}                         \
yann@2927
    83
        --host=${host}                              \
yann@2927
    84
        --prefix="${prefix}"                        \
yann@1324
    85
        --enable-fft                                \
yann@1324
    86
        --enable-mpbsd                              \
yann@1892
    87
        --enable-cxx                                \
yann@2381
    88
        --disable-shared                            \
yann@2381
    89
        --enable-static
yann@466
    90
yann@466
    91
    CT_DoLog EXTRA "Building GMP"
yann@2275
    92
    CT_DoExecLog ALL make ${JOBSFLAGS}
yann@466
    93
yann@1890
    94
    if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then
yann@466
    95
        CT_DoLog EXTRA "Checking GMP"
yann@2275
    96
        CT_DoExecLog ALL make ${JOBSFLAGS} -s check
yann@466
    97
    fi
yann@466
    98
yann@466
    99
    CT_DoLog EXTRA "Installing GMP"
yann@655
   100
    CT_DoExecLog ALL make install
yann@466
   101
}
yann@468
   102
yann@1810
   103
fi # CT_GMP