scripts/build/mpfr.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Nov 20 17:10:09 2008 +0000 (2008-11-20)
changeset 1063 1b4b6359a329
parent 798 aa89c67f0ffc
child 1112 c72aecd1a9ef
permissions -rw-r--r--
MPFR: correctly re-install config.{guess,sub} with autotools >=2.0.0.

/trunk/scripts/build/mpfr.sh | 14 13 1 0 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
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@602
     5
do_print_filename() { :; }
yann@602
     6
do_mpfr_get() { :; }
yann@602
     7
do_mpfr_extract() { :; }
yann@602
     8
do_mpfr() { :; }
yann@602
     9
do_mpfr_target() { :; }
yann@602
    10
yann@602
    11
# Overide function depending on configuration
yann@602
    12
if [ "${CT_GMP_MPFR}" = "y" ]; then
yann@468
    13
yann@466
    14
do_print_filename() {
yann@602
    15
    [ "${CT_GMP_MPFR}" = "y" ] || return 0
yann@466
    16
    echo "mpfr-${CT_MPFR_VERSION}"
yann@466
    17
}
yann@466
    18
yann@466
    19
# Download MPFR
yann@466
    20
do_mpfr_get() {
yann@522
    21
    CT_GetFile "${CT_MPFR_FILE}" http://www.mpfr.org/mpfr-current/          \
yann@522
    22
                                 http://www.mpfr.org/mpfr-${CT_MPFR_VERSION}/
yann@466
    23
}
yann@466
    24
yann@466
    25
# Extract MPFR
yann@466
    26
do_mpfr_extract() {
yann@466
    27
    CT_ExtractAndPatch "${CT_MPFR_FILE}"
yann@466
    28
yann@584
    29
    # OK, Gentoo have a sanity check that libtool.m4 and ltmain.sh have the
yann@584
    30
    # same version number. Unfortunately, some tarballs of MPFR are not
yann@584
    31
    # built sanely, and thus ./configure fails on Gentoo.
yann@584
    32
    # See: http://sourceware.org/ml/crossgcc/2008-05/msg00080.html
yann@584
    33
    # and: http://sourceware.org/ml/crossgcc/2008-06/msg00005.html
yann@598
    34
    # This hack is not bad per se, but the MPFR guys would be better not to
yann@584
    35
    # do that in the future...
yann@591
    36
    CT_Pushd "${CT_SRC_DIR}/${CT_MPFR_FILE}"
yann@598
    37
    if [ ! -f .autotools.ct-ng ]; then
yann@798
    38
        CT_DoLog DEBUG "Re-building autotools files"
yann@656
    39
        CT_DoExecLog ALL autoreconf -fi
yann@1063
    40
        # Starting with libtool-1.9f, config.{guess,sub} are no longer
yann@1063
    41
        # installed without -i, but starting with libtool-2.2.6, they
yann@1063
    42
        # are no longer removed without -i. Sight... Just use -i with
yann@1063
    43
        # libtool >=2
yann@1063
    44
        # See: http://sourceware.org/ml/crossgcc/2008-11/msg00046.html
yann@1063
    45
        # and: http://sourceware.org/ml/crossgcc/2008-11/msg00048.html
yann@1063
    46
        libtoolize_opt=
yann@1063
    47
        case "$(libtoolize --version |head -n 1 |gawk '{ print $(NF); }')" in
yann@1063
    48
            0.*)    ;;
yann@1063
    49
            1.*)    ;;
yann@1063
    50
            *)      libtoolize_opt=-i;;
yann@1063
    51
        esac
yann@1063
    52
        CT_DoExecLog ALL libtoolize -f ${libtoolize_opt}
yann@598
    53
        touch .autotools.ct-ng
yann@598
    54
    fi
yann@591
    55
    CT_Popd
yann@595
    56
}
yann@595
    57
yann@595
    58
do_mpfr() {
yann@595
    59
    mkdir -p "${CT_BUILD_DIR}/build-mpfr"
yann@595
    60
    cd "${CT_BUILD_DIR}/build-mpfr"
yann@595
    61
yann@595
    62
    CT_DoStep INFO "Installing MPFR"
yann@584
    63
yann@466
    64
    CT_DoLog EXTRA "Configuring MPFR"
yann@656
    65
    CFLAGS="${CT_CFLAGS_FOR_HOST}"              \
yann@656
    66
    CT_DoExecLog ALL                            \
yann@656
    67
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"   \
yann@656
    68
        --build=${CT_BUILD}                     \
yann@656
    69
        --host=${CT_HOST}                       \
yann@656
    70
        --prefix="${CT_PREFIX_DIR}"             \
yann@656
    71
        --enable-thread-safe                    \
yann@656
    72
        --disable-shared --enable-static        \
yann@656
    73
        --with-gmp="${CT_PREFIX_DIR}"
yann@466
    74
yann@466
    75
    CT_DoLog EXTRA "Building MPFR"
yann@656
    76
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@466
    77
yann@466
    78
    if [ "${CT_MPFR_CHECK}" = "y" ]; then
yann@466
    79
        CT_DoLog EXTRA "Checking MPFR"
yann@656
    80
        CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
yann@466
    81
    fi
yann@466
    82
yann@466
    83
    CT_DoLog EXTRA "Installing MPFR"
yann@656
    84
    CT_DoExecLog ALL make install
yann@466
    85
yann@466
    86
    CT_EndStep
yann@466
    87
}
yann@468
    88
yann@602
    89
if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then
yann@468
    90
yann@602
    91
do_mpfr_target() {
yann@602
    92
    mkdir -p "${CT_BUILD_DIR}/build-mpfr-target"
yann@602
    93
    cd "${CT_BUILD_DIR}/build-mpfr-target"
yann@468
    94
yann@602
    95
    CT_DoStep INFO "Installing MPFR for the target"
yann@602
    96
yann@602
    97
    CT_DoLog EXTRA "Configuring MPFR"
yann@656
    98
    CFLAGS="${CT_CFLAGS_FOR_TARGET}"            \
yann@656
    99
    CT_DoExecLog ALL                            \
yann@656
   100
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"   \
yann@656
   101
        --build=${CT_BUILD}                     \
yann@656
   102
        --host=${CT_TARGET}                     \
yann@656
   103
        --prefix=/usr                           \
yann@656
   104
        --enable-thread-safe                    \
yann@656
   105
        --disable-shared --enable-static        \
yann@656
   106
        --with-gmp="${CT_SYSROOT_DIR}/usr"
yann@602
   107
yann@602
   108
    CT_DoLog EXTRA "Building MPFR"
yann@656
   109
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@602
   110
yann@602
   111
    # Not possible to check MPFR while X-compiling
yann@602
   112
yann@602
   113
    CT_DoLog EXTRA "Installing MPFR"
yann@656
   114
    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install
yann@602
   115
yann@602
   116
    CT_EndStep
yann@602
   117
}
yann@602
   118
yann@602
   119
fi # CT_GMP_MPFR_TARGET == y
yann@602
   120
yann@602
   121
fi # CT_GMP_MPFR == y