scripts/build/companion_libs/cloog.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 24 23:53:14 2011 +0200 (2011-07-24)
changeset 2929 22e495b7bee8
parent 2927 ddaae597fd7c
child 2931 8a72662f0815
permissions -rw-r--r--
complibs: add frontends for building to run on the build machine

In canadian-cross, we need the companion libraries running on the
build machine, to be able to build the two core gcc.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
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@2927
    67
    cloog_opts+=( "prefix=${CT_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