scripts/build/companion_libs/cloog.sh
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
parent 2929 22e495b7bee8
child 3018 7776e8369284
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
yann@1380
     1
# This file adds the functions to build the CLooG library
yann@1380
     2
# Copyright 2009 Yann E. MORIN
yann@1380
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@1380
     4
yann@1380
     5
do_cloog_get() { :; }
yann@1380
     6
do_cloog_extract() { :; }
yann@2929
     7
do_cloog_for_build() { :; }
yann@2927
     8
do_cloog_for_host() { :; }
yann@1380
     9
yann@1380
    10
# Overide functions depending on configuration
yann@1808
    11
if [ "${CT_CLOOG}" = "y" ]; then
yann@1380
    12
yann@1380
    13
# Download CLooG
yann@1380
    14
do_cloog_get() {
yann@1380
    15
    CT_GetFile "cloog-ppl-${CT_CLOOG_VERSION}"  \
yann@1380
    16
        ftp://gcc.gnu.org/pub/gcc/infrastructure
yann@1380
    17
}
yann@1380
    18
yann@1380
    19
# Extract CLooG
yann@1380
    20
do_cloog_extract() {
yann@1530
    21
    local _t
yann@1530
    22
yann@1530
    23
    # Version 0.15.3 has a dirname 'cloog-ppl' (with no version in it!)
yann@1530
    24
    # while versions 0.15.4 onward do have the version in the dirname.
yann@2757
    25
    # But, because the infrastructure properly creates the extracted
yann@2757
    26
    # directories (with tar's --strip-components), we can live safely...
yann@2757
    27
    CT_Extract "cloog-ppl-${CT_CLOOG_VERSION}"
yann@2757
    28
    CT_Patch "cloog-ppl" "${CT_CLOOG_VERSION}"
yann@2757
    29
yann@2758
    30
    if [ "${CT_CLOOG_NEEDS_AUTORECONF}" = "y" ]; then
yann@2757
    31
        CT_Pushd "${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}"
yann@2704
    32
        CT_DoExecLog CFG ./autogen.sh
yann@2757
    33
        CT_Popd
yann@2262
    34
    fi
yann@1380
    35
}
yann@1380
    36
yann@2929
    37
# Build CLooG/PPL for running on build
yann@2929
    38
# - always build statically
yann@2929
    39
# - we do not have build-specific CFLAGS
yann@2929
    40
# - install in build-tools prefix
yann@2929
    41
do_cloog_for_build() {
yann@2929
    42
    local -a cloog_opts
yann@2929
    43
yann@2929
    44
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2929
    45
        native|cross)   return 0;;
yann@2929
    46
    esac
yann@2929
    47
yann@2929
    48
    CT_DoStep INFO "Installing CLooG/PPL for build"
yann@2929
    49
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-ppl-build-${CT_BUILD}"
yann@2929
    50
yann@2929
    51
    cloog_opts+=( "host=${CT_BUILD}" )
yann@2929
    52
    cloog_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
yann@2929
    53
    do_cloog_backend "${cloog_opts[@]}"
yann@2929
    54
yann@2929
    55
    CT_Popd
yann@2929
    56
    CT_EndStep
yann@2929
    57
}
yann@2929
    58
yann@2927
    59
# Build CLooG/PPL for running on host
yann@2927
    60
do_cloog_for_host() {
yann@2927
    61
    local -a cloog_opts
yann@2927
    62
yann@2927
    63
    CT_DoStep INFO "Installing CLooG/PPL for host"
yann@2927
    64
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-ppl-host-${CT_HOST}"
yann@2927
    65
yann@2927
    66
    cloog_opts+=( "host=${CT_HOST}" )
yann@2931
    67
    cloog_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" )
yann@2927
    68
    cloog_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
yann@2927
    69
    do_cloog_backend "${cloog_opts[@]}"
yann@2927
    70
yann@2927
    71
    CT_Popd
yann@2927
    72
    CT_EndStep
yann@2927
    73
}
yann@2927
    74
yann@2927
    75
# Build ClooG/PPL
yann@2927
    76
#     Parameter     : description               : type      : default
yann@2927
    77
#     host          : machine to run on         : tuple     : (none)
yann@2927
    78
#     prefix        : prefix to install into    : dir       : (none)
yann@2927
    79
#     cflags        : host cflags to use        : string    : (empty)
yann@2927
    80
do_cloog_backend() {
yann@2927
    81
    local host
yann@2927
    82
    local prefix
yann@2927
    83
    local cflags
yann@2757
    84
    local cloog_src_dir="${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}"
yann@2927
    85
    local arg
yann@1537
    86
yann@2927
    87
    for arg in "$@"; do
yann@2927
    88
        eval "${arg// /\\ }"
yann@2927
    89
    done
yann@1380
    90
yann@1380
    91
    CT_DoLog EXTRA "Configuring CLooG/ppl"
yann@1892
    92
yann@2349
    93
    CT_DoExecLog CFG                            \
yann@2927
    94
    CFLAGS="${cflags}"                          \
benoit@2854
    95
    LIBS="-lm"                                  \
yann@2757
    96
    "${cloog_src_dir}/configure"                \
yann@1537
    97
        --build=${CT_BUILD}                     \
yann@2927
    98
        --host=${host}                          \
yann@2927
    99
        --prefix="${prefix}"                    \
yann@2927
   100
        --with-gmp="${prefix}"                  \
yann@2927
   101
        --with-ppl="${prefix}"                  \
yann@1892
   102
        --with-bits=gmp                         \
yann@2381
   103
        --with-host-libstdcxx='-lstdc++'        \
yann@2381
   104
        --disable-shared                        \
yann@2381
   105
        --enable-static
yann@1380
   106
yann@1380
   107
    CT_DoLog EXTRA "Building CLooG/ppl"
yann@2275
   108
    CT_DoExecLog ALL make ${JOBSFLAGS} libcloog.la
yann@1380
   109
yann@1890
   110
    if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then
yann@1380
   111
        CT_DoLog EXTRA "Checking CLooG/ppl"
yann@2275
   112
        CT_DoExecLog ALL make ${JOBSFLAGS} -s check
yann@1380
   113
    fi
yann@1380
   114
yann@1380
   115
    CT_DoLog EXTRA "Installing CLooG/ppl"
yann@2199
   116
    CT_DoExecLog ALL make install-libLTLIBRARIES install-pkgincludeHEADERS
yann@1380
   117
}
yann@1380
   118
yann@1808
   119
fi # CT_CLOOG