scripts/build/companion_libs/mpc.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Mar 29 00:15:32 2010 +0200 (2010-03-29)
changeset 1864 758d5137fe87
parent 1399 d603008707f1
child 1890 39045a2f1163
permissions -rw-r--r--
scripts/populate: optimise search loop

Curently, populate will iterate over all ELF (shared objects|executables)
to look for missing NEEDED DSOs, adding to the list at every iterations
of the search loop.

Instead of looking again at previously handled ELF files, recursively
resolve every ELf files.

Also, in case there are a whole lot of files (more than the shell can
accept as arguments list, or creating a command line longer than the
shell can cope with), use a temporary file with the list of files
to search for missing dependencies.
yann@1384
     1
# This file adds the functions to build the MPC library
yann@1384
     2
# Copyright 2009 Yann E. MORIN
yann@1384
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@1384
     4
yann@1384
     5
do_mpc_get() { :; }
yann@1384
     6
do_mpc_extract() { :; }
yann@1384
     7
do_mpc() { :; }
yann@1384
     8
do_mpc_target() { :; }
yann@1384
     9
yann@1384
    10
# Overide functions depending on configuration
yann@1808
    11
if [ "${CT_MPC}" = "y" ]; then
yann@1384
    12
yann@1384
    13
# Download MPC
yann@1384
    14
do_mpc_get() {
yann@1384
    15
    CT_GetFile "mpc-${CT_MPC_VERSION}" .tar.gz      \
yann@1384
    16
        http://www.multiprecision.org/mpc/download
yann@1384
    17
}
yann@1384
    18
yann@1384
    19
# Extract MPC
yann@1384
    20
do_mpc_extract() {
yann@1384
    21
    CT_Extract "mpc-${CT_MPC_VERSION}"
yann@1384
    22
    CT_Patch "mpc-${CT_MPC_VERSION}"
yann@1384
    23
}
yann@1384
    24
yann@1384
    25
do_mpc() {
yann@1384
    26
    mkdir -p "${CT_BUILD_DIR}/build-mpc"
yann@1384
    27
    cd "${CT_BUILD_DIR}/build-mpc"
yann@1384
    28
yann@1384
    29
    CT_DoStep INFO "Installing MPC"
yann@1384
    30
yann@1384
    31
    CT_DoLog EXTRA "Configuring MPC"
yann@1384
    32
    CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
yann@1384
    33
    CT_DoExecLog ALL                                \
yann@1384
    34
    "${CT_SRC_DIR}/mpc-${CT_MPC_VERSION}/configure" \
yann@1384
    35
        --build=${CT_BUILD}                         \
yann@1384
    36
        --host=${CT_HOST}                           \
yann@1384
    37
        --prefix="${CT_PREFIX_DIR}"                 \
yann@1384
    38
        --with-gmp="${CT_PREFIX_DIR}"               \
yann@1384
    39
        --with-mpfr="${CT_PREFIX_DIR}"              \
yann@1399
    40
        --enable-shared                             \
yann@1399
    41
        --disable-static                            \
yann@1384
    42
yann@1384
    43
    CT_DoLog EXTRA "Building MPC"
yann@1384
    44
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
yann@1384
    45
yann@1386
    46
    if [ "${CT_COMP_LIBS_CHECK}" = "y" ]; then
yann@1384
    47
        CT_DoLog EXTRA "Checking MPC"
yann@1384
    48
        CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
yann@1384
    49
    fi
yann@1384
    50
yann@1384
    51
    CT_DoLog EXTRA "Installing MPC"
yann@1384
    52
    CT_DoExecLog ALL make install
yann@1384
    53
yann@1384
    54
    CT_EndStep
yann@1384
    55
}
yann@1384
    56
yann@1808
    57
fi # CT_MPC