scripts/build/companion_libs/cloog.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Tue Jul 31 22:27:29 2012 +0200 (2012-07-31)
changeset 3018 7776e8369284
parent 2931 8a72662f0815
permissions -rw-r--r--
complibs/cloog: create missing m4 dir

Because we now patch configure.in and configure, the Makefile quicks
in a re-build rule as the source files are now more recent than the
bundled generated files, and that fails because the m4 directory
is missing, although on some systems where aclocal is not installed,
the re-build rule does nothing (except a warning).

Always create tht directory.

Reported-by: Per Arnold Blaasmo <per-arnold.blaasmo@atmel.com>
[Also thanks to Thomas De Schampheleire <patrickdepinguin@gmail.com>
for some digging works on this issue]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.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@3018
    30
    # Help the autostuff in case it thinks there are things to regenerate...
yann@3018
    31
    CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}/m4"
yann@3018
    32
yann@2758
    33
    if [ "${CT_CLOOG_NEEDS_AUTORECONF}" = "y" ]; then
yann@2757
    34
        CT_Pushd "${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}"
yann@2704
    35
        CT_DoExecLog CFG ./autogen.sh
yann@2757
    36
        CT_Popd
yann@2262
    37
    fi
yann@1380
    38
}
yann@1380
    39
yann@2929
    40
# Build CLooG/PPL for running on build
yann@2929
    41
# - always build statically
yann@2929
    42
# - we do not have build-specific CFLAGS
yann@2929
    43
# - install in build-tools prefix
yann@2929
    44
do_cloog_for_build() {
yann@2929
    45
    local -a cloog_opts
yann@2929
    46
yann@2929
    47
    case "${CT_TOOLCHAIN_TYPE}" in
yann@2929
    48
        native|cross)   return 0;;
yann@2929
    49
    esac
yann@2929
    50
yann@2929
    51
    CT_DoStep INFO "Installing CLooG/PPL for build"
yann@2929
    52
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-ppl-build-${CT_BUILD}"
yann@2929
    53
yann@2929
    54
    cloog_opts+=( "host=${CT_BUILD}" )
yann@2929
    55
    cloog_opts+=( "prefix=${CT_BUILDTOOLS_PREFIX_DIR}" )
yann@2929
    56
    do_cloog_backend "${cloog_opts[@]}"
yann@2929
    57
yann@2929
    58
    CT_Popd
yann@2929
    59
    CT_EndStep
yann@2929
    60
}
yann@2929
    61
yann@2927
    62
# Build CLooG/PPL for running on host
yann@2927
    63
do_cloog_for_host() {
yann@2927
    64
    local -a cloog_opts
yann@2927
    65
yann@2927
    66
    CT_DoStep INFO "Installing CLooG/PPL for host"
yann@2927
    67
    CT_mkdir_pushd "${CT_BUILD_DIR}/build-cloog-ppl-host-${CT_HOST}"
yann@2927
    68
yann@2927
    69
    cloog_opts+=( "host=${CT_HOST}" )
yann@2931
    70
    cloog_opts+=( "prefix=${CT_HOST_COMPLIBS_DIR}" )
yann@2927
    71
    cloog_opts+=( "cflags=${CT_CFLAGS_FOR_HOST}" )
yann@2927
    72
    do_cloog_backend "${cloog_opts[@]}"
yann@2927
    73
yann@2927
    74
    CT_Popd
yann@2927
    75
    CT_EndStep
yann@2927
    76
}
yann@2927
    77
yann@2927
    78
# Build ClooG/PPL
yann@2927
    79
#     Parameter     : description               : type      : default
yann@2927
    80
#     host          : machine to run on         : tuple     : (none)
yann@2927
    81
#     prefix        : prefix to install into    : dir       : (none)
yann@2927
    82
#     cflags        : host cflags to use        : string    : (empty)
yann@2927
    83
do_cloog_backend() {
yann@2927
    84
    local host
yann@2927
    85
    local prefix
yann@2927
    86
    local cflags
yann@2757
    87
    local cloog_src_dir="${CT_SRC_DIR}/cloog-ppl-${CT_CLOOG_VERSION}"
yann@2927
    88
    local arg
yann@1537
    89
yann@2927
    90
    for arg in "$@"; do
yann@2927
    91
        eval "${arg// /\\ }"
yann@2927
    92
    done
yann@1380
    93
yann@1380
    94
    CT_DoLog EXTRA "Configuring CLooG/ppl"
yann@1892
    95
yann@2349
    96
    CT_DoExecLog CFG                            \
yann@2927
    97
    CFLAGS="${cflags}"                          \
benoit@2854
    98
    LIBS="-lm"                                  \
yann@2757
    99
    "${cloog_src_dir}/configure"                \
yann@1537
   100
        --build=${CT_BUILD}                     \
yann@2927
   101
        --host=${host}                          \
yann@2927
   102
        --prefix="${prefix}"                    \
yann@2927
   103
        --with-gmp="${prefix}"                  \
yann@2927
   104
        --with-ppl="${prefix}"                  \
yann@1892
   105
        --with-bits=gmp                         \
yann@2381
   106
        --with-host-libstdcxx='-lstdc++'        \
yann@2381
   107
        --disable-shared                        \
yann@2381
   108
        --enable-static
yann@1380
   109
yann@1380
   110
    CT_DoLog EXTRA "Building CLooG/ppl"
yann@2275
   111
    CT_DoExecLog ALL make ${JOBSFLAGS} libcloog.la
yann@1380
   112
yann@1890
   113
    if [ "${CT_COMPLIBS_CHECK}" = "y" ]; then
yann@1380
   114
        CT_DoLog EXTRA "Checking CLooG/ppl"
yann@2275
   115
        CT_DoExecLog ALL make ${JOBSFLAGS} -s check
yann@1380
   116
    fi
yann@1380
   117
yann@1380
   118
    CT_DoLog EXTRA "Installing CLooG/ppl"
yann@2199
   119
    CT_DoExecLog ALL make install-libLTLIBRARIES install-pkgincludeHEADERS
yann@1380
   120
}
yann@1380
   121
yann@1808
   122
fi # CT_CLOOG