scripts/build/companion_libs/mpfr.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Aug 23 23:18:49 2010 +0200 (2010-08-23)
changeset 2099 1bb063c8a0ca
parent 1905 f819ad7335e2
child 2154 250cdcc86441
permissions -rw-r--r--
complibs: noone is using companion libs on the target; nuke them

As there's no longer any user of the companion libraries on the
target, nuke the build for the target.

Well, at least, there's libelf that's still needed by ltrace, so
we keep it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
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_mpfr_get() { :; }
yann@602
     6
do_mpfr_extract() { :; }
yann@602
     7
do_mpfr() { :; }
yann@602
     8
yann@602
     9
# Overide function depending on configuration
yann@2099
    10
if [ "${CT_MPFR}" = "y" ]; then
yann@468
    11
yann@466
    12
# Download MPFR
yann@466
    13
do_mpfr_get() {
yann@1119
    14
    CT_GetFile "mpfr-${CT_MPFR_VERSION}" 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@1126
    20
    CT_Extract "mpfr-${CT_MPFR_VERSION}"
yann@1901
    21
    CT_Patch "mpfr" "${CT_MPFR_VERSION}"
yann@466
    22
yann@584
    23
    # OK, Gentoo have a sanity check that libtool.m4 and ltmain.sh have the
yann@584
    24
    # same version number. Unfortunately, some tarballs of MPFR are not
yann@584
    25
    # built sanely, and thus ./configure fails on Gentoo.
yann@584
    26
    # See: http://sourceware.org/ml/crossgcc/2008-05/msg00080.html
yann@584
    27
    # and: http://sourceware.org/ml/crossgcc/2008-06/msg00005.html
yann@598
    28
    # This hack is not bad per se, but the MPFR guys would be better not to
yann@584
    29
    # do that in the future...
yann@1251
    30
    # It seems that MPFR >= 2.4.0 do not need this...
yann@1251
    31
    case "${CT_MPFR_VERSION}" in
yann@1889
    32
        2.4.*)
oron@1449
    33
            CT_Pushd "${CT_SRC_DIR}/mpfr-${CT_MPFR_VERSION}"
oron@1449
    34
            if [ ! -f .autoreconf.ct-ng ]; then
oron@1449
    35
                CT_DoLog DEBUG "Running autoreconf"
yann@1904
    36
                CT_DoExecLog ALL autoreconf
oron@1449
    37
                touch .autoreconf.ct-ng
oron@1449
    38
            fi
oron@1449
    39
            CT_Popd
oron@1449
    40
            ;;
yann@1251
    41
        1.*|2.0.*|2.1.*|2.2.*|2.3.*)
yann@1251
    42
            CT_Pushd "${CT_SRC_DIR}/mpfr-${CT_MPFR_VERSION}"
yann@1251
    43
            if [ ! -f .autotools.ct-ng ]; then
yann@1251
    44
                CT_DoLog DEBUG "Re-building autotools files"
yann@1251
    45
                CT_DoExecLog ALL autoreconf -fi
yann@1251
    46
                # Starting with libtool-1.9f, config.{guess,sub} are no longer
yann@1251
    47
                # installed without -i, but starting with libtool-2.2.6, they
yann@1251
    48
                # are no longer removed without -i. Sight... Just use -i with
yann@1251
    49
                # libtool >=2
yann@1251
    50
                # See: http://sourceware.org/ml/crossgcc/2008-11/msg00046.html
yann@1251
    51
                # and: http://sourceware.org/ml/crossgcc/2008-11/msg00048.html
yann@1251
    52
                libtoolize_opt=
yann@1299
    53
                case "$(libtoolize --version |head -n 1 |awk '{ print $(NF); }')" in
yann@1251
    54
                    0.*)    ;;
yann@1251
    55
                    1.*)    ;;
yann@1251
    56
                    *)      libtoolize_opt=-i;;
yann@1251
    57
                esac
yann@1251
    58
                CT_DoExecLog ALL libtoolize -f ${libtoolize_opt}
yann@1251
    59
                touch .autotools.ct-ng
yann@1251
    60
            fi
yann@1251
    61
            CT_Popd
yann@1251
    62
            ;;
yann@1251
    63
    esac
yann@595
    64
}
yann@595
    65
yann@595
    66
do_mpfr() {
yann@1892
    67
    local -a mpfr_opts
yann@1892
    68
yann@595
    69
    mkdir -p "${CT_BUILD_DIR}/build-mpfr"
yann@595
    70
    cd "${CT_BUILD_DIR}/build-mpfr"
yann@595
    71
yann@595
    72
    CT_DoStep INFO "Installing MPFR"
yann@584
    73
yann@1251
    74
    # Under Cygwin, we can't build a thread-safe library
yann@1205
    75
    case "${CT_HOST}" in
yann@1892
    76
        *cygwin*)   mpfr_opts+=( --disable-thread-safe );;
yann@1892
    77
        *mingw*)    mpfr_opts+=( --disable-thread-safe );;
yann@1892
    78
        *darwin*)   mpfr_opts+=( --disable-thread-safe );;
yann@1892
    79
        *)          mpfr_opts+=( --enable-thread-safe  );;
yann@1205
    80
    esac
yann@1205
    81
yann@1892
    82
    if [ "${CT_COMPLIBS_SHARED}" = "y" ]; then
yann@1892
    83
        mpfr_opts+=( --enable-shared --disable-static )
yann@1892
    84
    else
yann@1892
    85
        mpfr_opts+=( --disable-shared --enable-static )
yann@1892
    86
    fi
yann@1892
    87
yann@466
    88
    CT_DoLog EXTRA "Configuring MPFR"
yann@1251
    89
    CC="${CT_HOST}-gcc"                                 \
yann@1119
    90
    CFLAGS="${CT_CFLAGS_FOR_HOST}"                      \
yann@1119
    91
    CT_DoExecLog ALL                                    \
yann@1119
    92
    "${CT_SRC_DIR}/mpfr-${CT_MPFR_VERSION}/configure"   \
yann@1119
    93
        --build=${CT_BUILD}                             \
yann@1119
    94
        --host=${CT_HOST}                               \
yann@1893
    95
        --prefix="${CT_COMPLIBS_DIR}"                   \
yann@1893
    96
        --with-gmp="${CT_COMPLIBS_DIR}"                 \
yann@1892
    97
        "${mpfr_opts[@]}"
yann@466
    98
yann@466
    99
    CT_DoLog EXTRA "Building MPFR"
yann@656
   100
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@466
   101
yann@1890
   102
    if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then
yann@466
   103
        CT_DoLog EXTRA "Checking MPFR"
yann@656
   104
        CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
yann@466
   105
    fi
yann@466
   106
yann@466
   107
    CT_DoLog EXTRA "Installing MPFR"
yann@656
   108
    CT_DoExecLog ALL make install
yann@466
   109
yann@466
   110
    CT_EndStep
yann@466
   111
}
yann@468
   112
yann@1810
   113
fi # CT_MPFR