scripts/build/mpfr.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jun 11 21:47:19 2009 +0000 (2009-06-11)
branch1.4
changeset 1451 25d050084e98
parent 1290 108eaf22653b
child 1456 94fc77c37418
permissions -rw-r--r--
populate: fix installing dynamic linker 'ld.so'

The dynamic linker, ld.so, needs the execute bit to be set.
Detect tht the library being installed is in fact ld.so and
install it with 0755 instead of 0644.

Fix detecting src == dst.

Use a simpler command to copy src -> dst.

Also change echo to printf, get rid of 'echo -n', which is
highly non-portable.


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