scripts/build/mpfr.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jun 20 10:58:45 2008 +0000 (2008-06-20)
changeset 598 a2b23333b17a
parent 595 3ea35558d659
child 602 1968d150a34f
permissions -rw-r--r--
Really don't re-build MPFR autotools files at each run.

/trunk/scripts/build/debug/300-gdb.sh | 8 6 2 0 ++++++--
/trunk/scripts/build/mpfr.sh | 10 7 3 0 +++++++---
2 files changed, 13 insertions(+), 5 deletions(-)
yann@466
     1
# This file adds the functions to build the MPFR 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@468
     5
if [ "${CT_CC_GCC_GMP_MPFR}" = "y" ]; then
yann@468
     6
yann@466
     7
do_print_filename() {
yann@466
     8
    [ "${CT_CC_GCC_GMP_MPFR}" = "y" ] || return 0
yann@466
     9
    echo "mpfr-${CT_MPFR_VERSION}"
yann@466
    10
}
yann@466
    11
yann@466
    12
# Download MPFR
yann@466
    13
do_mpfr_get() {
yann@522
    14
    CT_GetFile "${CT_MPFR_FILE}" http://www.mpfr.org/mpfr-current/          \
yann@522
    15
                                 http://www.mpfr.org/mpfr-${CT_MPFR_VERSION}/
yann@466
    16
}
yann@466
    17
yann@466
    18
# Extract MPFR
yann@466
    19
do_mpfr_extract() {
yann@466
    20
    CT_ExtractAndPatch "${CT_MPFR_FILE}"
yann@466
    21
yann@584
    22
    # OK, Gentoo have a sanity check that libtool.m4 and ltmain.sh have the
yann@584
    23
    # same version number. Unfortunately, some tarballs of MPFR are not
yann@584
    24
    # built sanely, and thus ./configure fails on Gentoo.
yann@584
    25
    # See: http://sourceware.org/ml/crossgcc/2008-05/msg00080.html
yann@584
    26
    # and: http://sourceware.org/ml/crossgcc/2008-06/msg00005.html
yann@598
    27
    # This hack is not bad per se, but the MPFR guys would be better not to
yann@584
    28
    # do that in the future...
yann@591
    29
    CT_Pushd "${CT_SRC_DIR}/${CT_MPFR_FILE}"
yann@598
    30
    if [ ! -f .autotools.ct-ng ]; then
yann@598
    31
        CT_DoLog EXTRA "Re-building autotools files"
yann@598
    32
        autoreconf -fi  2>&1 |CT_DoLog ALL
yann@598
    33
        libtoolize -f   2>&1 |CT_DoLog ALL
yann@598
    34
        touch .autotools.ct-ng
yann@598
    35
    fi
yann@591
    36
    CT_Popd
yann@595
    37
}
yann@595
    38
yann@595
    39
do_mpfr() {
yann@595
    40
    mkdir -p "${CT_BUILD_DIR}/build-mpfr"
yann@595
    41
    cd "${CT_BUILD_DIR}/build-mpfr"
yann@595
    42
yann@595
    43
    CT_DoStep INFO "Installing MPFR"
yann@584
    44
yann@466
    45
    CT_DoLog EXTRA "Configuring MPFR"
yann@466
    46
    CFLAGS="${CT_CFLAGS_FOR_HOST}"                          \
yann@466
    47
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"               \
yann@466
    48
        --build=${CT_BUILD}                                 \
yann@466
    49
        --host=${CT_HOST}                                   \
yann@466
    50
        --prefix="${CT_PREFIX_DIR}"                         \
yann@524
    51
        --enable-thread-safe                                \
yann@466
    52
        --disable-shared --enable-static                    \
yann@466
    53
        --with-gmp="${CT_PREFIX_DIR}"                       2>&1 |CT_DoLog ALL
yann@466
    54
yann@466
    55
    CT_DoLog EXTRA "Building MPFR"
yann@466
    56
    make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
yann@466
    57
yann@466
    58
    if [ "${CT_MPFR_CHECK}" = "y" ]; then
yann@466
    59
        CT_DoLog EXTRA "Checking MPFR"
yann@466
    60
        make -s check       2>&1 |CT_DoLog ALL
yann@466
    61
    fi
yann@466
    62
yann@466
    63
    CT_DoLog EXTRA "Installing MPFR"
yann@466
    64
    make install            2>&1 |CT_DoLog ALL
yann@466
    65
yann@466
    66
    CT_EndStep
yann@466
    67
}
yann@468
    68
yann@468
    69
else # No MPFR
yann@468
    70
yann@468
    71
do_print_filename() { :; }
yann@468
    72
do_mpfr_get() { :; }
yann@468
    73
do_mpfr_extract() { :; }
yann@468
    74
do_mpfr() { :; }
yann@468
    75
yann@468
    76
fi