scripts/build/companion_libs/120-ppl.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Dec 27 12:53:32 2012 +0100 (2012-12-27)
changeset 3153 f6740f9e42de
parent 3119 1c56c03b7ed5
child 3180 0c76cb00a9c6
permissions -rw-r--r--
scripts/addToolsVersion: handle elf2flt

The one was missing from the list.

It is very improbable that we ever need it, as elf2flt does no release,
and we always get it from CVS head. But for the sake of consistency, we
just add it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@1324
     1
# This file adds the functions to build the PPL library
yann@1324
     2
# Copyright 2009 Yann E. MORIN
yann@1324
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@1324
     4
yann@1324
     5
do_ppl_get() { :; }
yann@1324
     6
do_ppl_extract() { :; }
yann@2929
     7
do_ppl_for_build() { :; }
yann@2927
     8
do_ppl_for_host() { :; }
yann@1324
     9
yann@1324
    10
# Overide functions depending on configuration
yann@1808
    11
if [ "${CT_PPL}" = "y" ]; then
yann@1324
    12
yann@1324
    13
# Download PPL
yann@1324
    14
do_ppl_get() {
yann@1324
    15
    CT_GetFile "ppl-${CT_PPL_VERSION}"                                      \
yann@1324
    16
        http://www.cs.unipr.it/ppl/Download/ftp/releases/${CT_PPL_VERSION}  \
yann@1369
    17
        ftp://ftp.cs.unipr.it/pub/ppl/releases/${CT_PPL_VERSION}            \
yann@1369
    18
        ftp://gcc.gnu.org/pub/gcc/infrastructure
yann@1324
    19
}
yann@1324
    20
yann@1324
    21
# Extract PPL
yann@1324
    22
do_ppl_extract() {
yann@1324
    23
    CT_Extract "ppl-${CT_PPL_VERSION}"
yann@1901
    24
    CT_Patch "ppl" "${CT_PPL_VERSION}"
yann@1324
    25
}
yann@1324
    26
yann@2929
    27
# Build PPL for running on build
yann@2929
    28
# - always build statically
yann@2929
    29
# - we do not have build-specific CFLAGS
yann@2929
    30
# - install in build-tools prefix
yann@2929
    31
do_ppl_for_build() {
yann@2929
    32
    local -a ppl_opts
yann@3135
    33
    local ppl_cflags
yann@2929
    34
yann@2929
    35
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2929
    36
        native|cross)   return 0;;
yann@2929
    37
    esac
yann@2929
    38
yann@2929
    39
    CT_DoStep INFO "Installing PPL for build"
yann@2929
    40
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-ppl-build-${CT_BUILD}"
yann@2929
    41
yann@3135
    42
    ppl_cflags="${CT_CFLAGS_FOR_BUILD}"
yann@3135
    43
    if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then
yann@3135
    44
        ppl_cflags+=" -fpermissive"
yann@3135
    45
    fi
yann@3135
    46
yann@2929
    47
    ppl_opts+=( "host=${CT_BUILD}" )
yann@2929
    48
    ppl_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
yann@3135
    49
    ppl_opts+=( "cflags=${ppl_cflags}" )
diorcet@3119
    50
    ppl_opts+=( "ldflags=${CT_LDFLAGS_FOR_BUILD}" )
yann@2929
    51
    do_ppl_backend "${ppl_opts[@]}"
yann@2929
    52
yann@2929
    53
    CT_Popd
yann@2929
    54
    CT_EndStep
yann@2929
    55
}
yann@2929
    56
yann@2927
    57
# Build PPL for running on host
yann@2927
    58
do_ppl_for_host() {
yann@2927
    59
    local -a ppl_opts
yann@3135
    60
    local ppl_cflags
yann@1324
    61
yann@2927
    62
    CT_DoStep INFO "Installing PPL for host"
yann@2927
    63
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-ppl-host-${CT_HOST}"
yann@2927
    64
yann@3135
    65
    ppl_cflags="${CT_CFLAGS_FOR_HOST}"
yann@3135
    66
    if [ "${CT_PPL_NEEDS_FPERMISSIVE}" = "y" ]; then
yann@3135
    67
        ppl_cflags+=" -fpermissive"
yann@3135
    68
    fi
yann@3135
    69
yann@2927
    70
    ppl_opts+=( "host=${CT_HOST}" )
yann@2931
    71
    ppl_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" )
yann@3135
    72
    ppl_opts+=( "cflags=${ppl_cflags}" )
diorcet@3119
    73
    ppl_opts+=( "ldflags=${CT_LDFLAGS_FOR_HOST}" )
yann@2927
    74
    do_ppl_backend "${ppl_opts[@]}"
yann@2927
    75
yann@2927
    76
    CT_Popd
yann@2927
    77
    CT_EndStep
yann@2927
    78
}
yann@2927
    79
yann@2927
    80
# Build PPL
yann@2927
    81
#     Parameter     : description               : type      : default
yann@2927
    82
#     host          : machine to run on         : tuple     : (none)
yann@2927
    83
#     prefix        : prefix to install into    : dir       : (none)
diorcet@3119
    84
#     cflags        : cflags to use             : string    : (empty)
diorcet@3119
    85
#     ldflags       : ldflags to use            : string    : (empty)
yann@2927
    86
do_ppl_backend() {
yann@2927
    87
    local host
yann@2927
    88
    local prefix
yann@2927
    89
    local cflags
diorcet@3119
    90
    local ldflags
yann@2927
    91
    local arg
yann@2927
    92
yann@2927
    93
    for arg in "$@"; do
yann@2927
    94
        eval "${arg// /\\ }"
yann@2927
    95
    done
yann@1324
    96
yann@1324
    97
    CT_DoLog EXTRA "Configuring PPL"
yann@1892
    98
yann@2348
    99
    CT_DoExecLog CFG                                \
yann@2927
   100
    CFLAGS="${cflags}"                              \
yann@2927
   101
    CXXFLAGS="${cflags}"                            \
diorcet@3119
   102
    LDFLAGS="${ldflags}"                            \
yann@1324
   103
    "${CT_SRC_DIR}/ppl-${CT_PPL_VERSION}/configure" \
yann@1324
   104
        --build=${CT_BUILD}                         \
yann@2927
   105
        --host=${host}                              \
yann@2927
   106
        --prefix="${prefix}"                        \
yann@2927
   107
        --with-libgmp-prefix="${prefix}"            \
yann@2927
   108
        --with-libgmpxx-prefix="${prefix}"          \
yann@2927
   109
        --with-gmp-prefix="${prefix}"               \
yann@2364
   110
        --enable-watchdog                           \
yann@1324
   111
        --disable-debugging                         \
yann@1324
   112
        --disable-assertions                        \
yann@1324
   113
        --disable-ppl_lcdd                          \
yann@1892
   114
        --disable-ppl_lpsol                         \
yann@2381
   115
        --disable-shared                            \
anthony@2461
   116
        --enable-interfaces='c c++'                 \
yann@2381
   117
        --enable-static
yann@1324
   118
yann@1324
   119
    # Maybe-options:
yann@1324
   120
    # --enable-optimization=speed  or sspeed (yes, with 2 's')
yann@1324
   121
yann@1324
   122
    CT_DoLog EXTRA "Building PPL"
yann@2275
   123
    CT_DoExecLog ALL make ${JOBSFLAGS}
yann@1324
   124
yann@1890
   125
    if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then
yann@1324
   126
        CT_DoLog EXTRA "Checking PPL"
yann@2275
   127
        CT_DoExecLog ALL make ${JOBSFLAGS} -s check
yann@1324
   128
    fi
yann@1324
   129
yann@1324
   130
    CT_DoLog EXTRA "Installing PPL"
yann@1324
   131
    CT_DoExecLog ALL make install
yann@1324
   132
yann@1397
   133
    # Remove spuriously installed file
yann@2927
   134
    CT_DoExecLog ALL rm -f "${prefix}/bin/ppl-config"
yann@1324
   135
}
yann@1324
   136
yann@1808
   137
fi # CT_PPL