scripts/build/mpfr.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Jun 20 15:16:43 2008 +0000 (2008-06-20)
changeset 602 1968d150a34f
parent 598 a2b23333b17a
child 656 b43129be0f04
permissions -rw-r--r--
GMP and MPFR are no longer a sub-component of gcc (config-wise).
Build and install GMP and MPFR for the target.
Use the target GMP and MPFR to build the native gdb.
Have separate extra_config for cross gdb, native gdb and gdbserver.
Check native GMP and MPFR in //.

/trunk/scripts/build/debug/300-gdb.sh | 27 19 8 0 ++++++++++++++++-------
/trunk/scripts/build/gmp.sh | 47 39 8 0 ++++++++++++++++++++++++++++++++-------
/trunk/scripts/build/mpfr.sh | 49 40 9 0 +++++++++++++++++++++++++++++++++--------
/trunk/steps.mk | 2 2 0 0 ++
/trunk/config/cc/gcc.in | 18 1 17 0 +--------------
/trunk/config/debug/gdb.in | 6 1 5 0 +----
/trunk/config/config.in | 1 1 0 0 +
/trunk/config/gmp_mpfr.in | 34 34 0 0 ++++++++++++++++++++++++++++
8 files changed, 137 insertions(+), 47 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@598
    38
        CT_DoLog EXTRA "Re-building autotools files"
yann@598
    39
        autoreconf -fi  2>&1 |CT_DoLog ALL
yann@598
    40
        libtoolize -f   2>&1 |CT_DoLog ALL
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@466
    53
    CFLAGS="${CT_CFLAGS_FOR_HOST}"                          \
yann@466
    54
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"               \
yann@466
    55
        --build=${CT_BUILD}                                 \
yann@466
    56
        --host=${CT_HOST}                                   \
yann@466
    57
        --prefix="${CT_PREFIX_DIR}"                         \
yann@524
    58
        --enable-thread-safe                                \
yann@466
    59
        --disable-shared --enable-static                    \
yann@466
    60
        --with-gmp="${CT_PREFIX_DIR}"                       2>&1 |CT_DoLog ALL
yann@466
    61
yann@466
    62
    CT_DoLog EXTRA "Building MPFR"
yann@466
    63
    make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
yann@466
    64
yann@466
    65
    if [ "${CT_MPFR_CHECK}" = "y" ]; then
yann@466
    66
        CT_DoLog EXTRA "Checking MPFR"
yann@602
    67
        make ${PARALLELMFLAGS} -s check 2>&1 |CT_DoLog ALL
yann@466
    68
    fi
yann@466
    69
yann@466
    70
    CT_DoLog EXTRA "Installing MPFR"
yann@466
    71
    make install            2>&1 |CT_DoLog ALL
yann@466
    72
yann@466
    73
    CT_EndStep
yann@466
    74
}
yann@468
    75
yann@602
    76
if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then
yann@468
    77
yann@602
    78
do_mpfr_target() {
yann@602
    79
    mkdir -p "${CT_BUILD_DIR}/build-mpfr-target"
yann@602
    80
    cd "${CT_BUILD_DIR}/build-mpfr-target"
yann@468
    81
yann@602
    82
    CT_DoStep INFO "Installing MPFR for the target"
yann@602
    83
yann@602
    84
    CT_DoLog EXTRA "Configuring MPFR"
yann@602
    85
    CFLAGS="${CT_CFLAGS_FOR_TARGET}"                        \
yann@602
    86
    "${CT_SRC_DIR}/${CT_MPFR_FILE}/configure"               \
yann@602
    87
        --build=${CT_BUILD}                                 \
yann@602
    88
        --host=${CT_TARGET}                                 \
yann@602
    89
        --prefix=/usr                                       \
yann@602
    90
        --enable-thread-safe                                \
yann@602
    91
        --disable-shared --enable-static                    \
yann@602
    92
        --with-gmp="${CT_SYSROOT_DIR}/usr"                  2>&1 |CT_DoLog ALL
yann@602
    93
yann@602
    94
    CT_DoLog EXTRA "Building MPFR"
yann@602
    95
    make ${PARALLELMFLAGS}  2>&1 |CT_DoLog ALL
yann@602
    96
yann@602
    97
    # Not possible to check MPFR while X-compiling
yann@602
    98
yann@602
    99
    CT_DoLog EXTRA "Installing MPFR"
yann@602
   100
    make DESTDIR="${CT_SYSROOT_DIR}" install    2>&1 |CT_DoLog ALL
yann@602
   101
yann@602
   102
    CT_EndStep
yann@602
   103
}
yann@602
   104
yann@602
   105
fi # CT_GMP_MPFR_TARGET == y
yann@602
   106
yann@602
   107
fi # CT_GMP_MPFR == y