scripts/build/mpfr.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Sep 23 14:48:10 2008 +0000 (2008-09-23)
changeset 872 fd4bf138f08f
parent 656 b43129be0f04
child 1063 1b4b6359a329
permissions -rw-r--r--
Bart De VOS pointed out that removing absolute paths from the libc linker scripts is plainly wrong.
It dates from dawn ages of the original crosstool code, and is not well explained. At that time, binutils might not understand the sysroot stuff, and it was necessary to remove absolute paths in that case.

/trunk/scripts/build/libc/glibc.sh | 14 2 12 0 ++------------
1 file changed, 2 insertions(+), 12 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@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@656
    40
        CT_DoExecLog ALL libtoolize -f
yann@598
    41
        touch .autotools.ct-ng
yann@598
    42
    fi
yann@591
    43
    CT_Popd
yann@595
    44
}
yann@595
    45
yann@595
    46
do_mpfr() {
yann@595
    47
    mkdir -p "${CT_BUILD_DIR}/build-mpfr"
yann@595
    48
    cd "${CT_BUILD_DIR}/build-mpfr"
yann@595
    49
yann@595
    50
    CT_DoStep INFO "Installing MPFR"
yann@584
    51
yann@466
    52
    CT_DoLog EXTRA "Configuring MPFR"
yann@656
    53
    CFLAGS="${CT_CFLAGS_FOR_HOST}"              \
yann@656
    54
    CT_DoExecLog ALL                            \
yann@656
    55
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"   \
yann@656
    56
        --build=${CT_BUILD}                     \
yann@656
    57
        --host=${CT_HOST}                       \
yann@656
    58
        --prefix="${CT_PREFIX_DIR}"             \
yann@656
    59
        --enable-thread-safe                    \
yann@656
    60
        --disable-shared --enable-static        \
yann@656
    61
        --with-gmp="${CT_PREFIX_DIR}"
yann@466
    62
yann@466
    63
    CT_DoLog EXTRA "Building MPFR"
yann@656
    64
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@466
    65
yann@466
    66
    if [ "${CT_MPFR_CHECK}" = "y" ]; then
yann@466
    67
        CT_DoLog EXTRA "Checking MPFR"
yann@656
    68
        CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
yann@466
    69
    fi
yann@466
    70
yann@466
    71
    CT_DoLog EXTRA "Installing MPFR"
yann@656
    72
    CT_DoExecLog ALL make install
yann@466
    73
yann@466
    74
    CT_EndStep
yann@466
    75
}
yann@468
    76
yann@602
    77
if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then
yann@468
    78
yann@602
    79
do_mpfr_target() {
yann@602
    80
    mkdir -p "${CT_BUILD_DIR}/build-mpfr-target"
yann@602
    81
    cd "${CT_BUILD_DIR}/build-mpfr-target"
yann@468
    82
yann@602
    83
    CT_DoStep INFO "Installing MPFR for the target"
yann@602
    84
yann@602
    85
    CT_DoLog EXTRA "Configuring MPFR"
yann@656
    86
    CFLAGS="${CT_CFLAGS_FOR_TARGET}"            \
yann@656
    87
    CT_DoExecLog ALL                            \
yann@656
    88
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"   \
yann@656
    89
        --build=${CT_BUILD}                     \
yann@656
    90
        --host=${CT_TARGET}                     \
yann@656
    91
        --prefix=/usr                           \
yann@656
    92
        --enable-thread-safe                    \
yann@656
    93
        --disable-shared --enable-static        \
yann@656
    94
        --with-gmp="${CT_SYSROOT_DIR}/usr"
yann@602
    95
yann@602
    96
    CT_DoLog EXTRA "Building MPFR"
yann@656
    97
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@602
    98
yann@602
    99
    # Not possible to check MPFR while X-compiling
yann@602
   100
yann@602
   101
    CT_DoLog EXTRA "Installing MPFR"
yann@656
   102
    CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install
yann@602
   103
yann@602
   104
    CT_EndStep
yann@602
   105
}
yann@602
   106
yann@602
   107
fi # CT_GMP_MPFR_TARGET == y
yann@602
   108
yann@602
   109
fi # CT_GMP_MPFR == y