scripts/build/gmp.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 04 22:17:53 2009 +0000 (2009-01-04)
changeset 1123 8c5881324a79
parent 1112 c72aecd1a9ef
child 1126 1ab3d2e08c8b
permissions -rw-r--r--
Get rid of CT_LIBC_FILE, remove useless CT_MakeAbsolutePath.

CT_LIBC_FILE:
- that one was not easy, as it had sneaked into CT_ExtractAndPatch
- which in turn made CT_ExtractAndPatch have references to C library addons
- which in turn relieved the C library _extract functions from doing their own job
- which in turn imposed some nasty tricks in CT_ExtractAndPatch
- which in turn made life easier for the DUMA _get and _extract functions
- which unveiled some bizare behavior for pushd and popd:
- if using smthg ike: 'pushd foo |bar':
- the directory is *neither* changed
- *nor* is it pushed onto the stack
- which made popd fail

CT_MakeAbsolutePath:
- used only to make CT_LOCAL_TARBALLS_DIR canonical
- which is ((almost) useless:
- hopefully, the user entered a full path already
- if it's not the case, too bad...

/trunk/scripts/build/debug/200-duma.sh | 5 1 4 0 +--
/trunk/scripts/build/libc/glibc.sh | 61 32 29 0 +++++++++++++++++---------------
/trunk/scripts/build/libc/uClibc.sh | 16 10 6 0 +++++---
/trunk/scripts/build/libc/eglibc.sh | 48 26 22 0 ++++++++++++++-----------
/trunk/scripts/crosstool.sh | 8 0 8 0 ----
/trunk/scripts/functions | 77 15 62 0 ++++++++--------------------------------
6 files changed, 84 insertions(+), 131 deletions(-)
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@602
     7
do_gmp() { :; }
yann@602
     8
do_gmp_target() { :; }
yann@602
     9
yann@602
    10
# Overide functions depending on configuration
yann@602
    11
if [ "${CT_GMP_MPFR}" = "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@1119
    20
    CT_ExtractAndPatch "gmp-${CT_GMP_VERSION}"
yann@466
    21
}
yann@466
    22
yann@466
    23
do_gmp() {
yann@466
    24
    mkdir -p "${CT_BUILD_DIR}/build-gmp"
yann@466
    25
    cd "${CT_BUILD_DIR}/build-gmp"
yann@466
    26
yann@466
    27
    CT_DoStep INFO "Installing GMP"
yann@466
    28
yann@466
    29
    CT_DoLog EXTRA "Configuring GMP"
yann@1119
    30
    CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
yann@1119
    31
    CT_DoExecLog ALL                                \
yann@1119
    32
    "${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \
yann@1119
    33
        --build=${CT_BUILD}                         \
yann@1119
    34
        --host=${CT_HOST}                           \
yann@1119
    35
        --prefix="${CT_PREFIX_DIR}"                 \
yann@1119
    36
        --disable-shared --enable-static            \
yann@666
    37
        --enable-fft --enable-mpbsd
yann@466
    38
yann@466
    39
    CT_DoLog EXTRA "Building GMP"
yann@655
    40
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@466
    41
yann@466
    42
    if [ "${CT_GMP_CHECK}" = "y" ]; then
yann@466
    43
        CT_DoLog EXTRA "Checking GMP"
yann@655
    44
        CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
yann@466
    45
    fi
yann@466
    46
yann@466
    47
    CT_DoLog EXTRA "Installing GMP"
yann@655
    48
    CT_DoExecLog ALL make install
yann@466
    49
yann@466
    50
    CT_EndStep
yann@466
    51
}
yann@468
    52
yann@602
    53
if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then
yann@468
    54
yann@602
    55
do_gmp_target() {
yann@602
    56
    mkdir -p "${CT_BUILD_DIR}/build-gmp-target"
yann@602
    57
    cd "${CT_BUILD_DIR}/build-gmp-target"
yann@468
    58
yann@602
    59
    CT_DoStep INFO "Installing GMP for the target"
yann@602
    60
yann@602
    61
    CT_DoLog EXTRA "Configuring GMP"
yann@1119
    62
    CFLAGS="${CT_CFLAGS_FOR_TARGET}"                \
yann@1119
    63
    CT_DoExecLog ALL                                \
yann@1119
    64
    "${CT_SRC_DIR}/gmp-${CT_GMP_VERSION}/configure" \
yann@1119
    65
        --build=${CT_BUILD}                         \
yann@1119
    66
        --host=${CT_TARGET}                         \
yann@1119
    67
        --prefix=/usr                               \
yann@1119
    68
        --disable-shared --enable-static            \
yann@666
    69
        --enable-fft --enable-mpbsd
yann@602
    70
yann@602
    71
    CT_DoLog EXTRA "Building GMP"
yann@666
    72
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@602
    73
yann@602
    74
    # Not possible to check MPFR while X-compiling
yann@602
    75
yann@602
    76
    CT_DoLog EXTRA "Installing GMP"
yann@666
    77
    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install
yann@602
    78
yann@602
    79
    CT_EndStep
yann@602
    80
}
yann@602
    81
yann@602
    82
fi # CT_GMP_MPFR_TARGET == y
yann@602
    83
yann@602
    84
fi # CT_GMP_MPFR == y