scripts/build/companion_libs/cloog.sh
author Oron Peled <oron@actcom.co.il>
Mon Aug 03 00:49:25 2009 +0200 (2009-08-03)
changeset 1449 8ad2773e7ae3
parent 1397 593fb5054810
child 1530 fafe0dd00c66
permissions -rw-r--r--
[complib:mpfr] Fix building MPFR in some weird cases

The tmul test uses a compiled-in input file in $(srcdir).
The problem is that the Makefile passes it unquoted. The C code
tries to stringify it using clever macros, which may *usually* work.

In my case the source directory was named:
.../toolchain-powerpc-e500v2-linux-gnuspe-1.0-2.fc10/.../tests
And guess what? During testing I found out the program fails because
it tries to open:
.../toolchain-powerpc-e500v2-1-gnuspe-1.0-2.fc10/.../tests

Yes, CPP tokenized the macro before stringifying it and not surprisingly
the 'linux' part was converted to 1.
[on Fedora-10: cpp (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)]

So the attached patch simplify the macros and pass the path as string
from the Makefile.
     1 # This file adds the functions to build the CLooG library
     2 # Copyright 2009 Yann E. MORIN
     3 # Licensed under the GPL v2. See COPYING in the root of this package
     4 
     5 do_cloog_get() { :; }
     6 do_cloog_extract() { :; }
     7 do_cloog() { :; }
     8 do_cloog_target() { :; }
     9 
    10 # Overide functions depending on configuration
    11 if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then
    12 
    13 # Download CLooG
    14 do_cloog_get() {
    15     CT_GetFile "cloog-ppl-${CT_CLOOG_VERSION}"  \
    16         ftp://gcc.gnu.org/pub/gcc/infrastructure
    17 }
    18 
    19 # Extract CLooG
    20 do_cloog_extract() {
    21     CT_Extract "cloog-ppl-${CT_CLOOG_VERSION}"
    22     CT_Pushd "${CT_SRC_DIR}/cloog-ppl"
    23     CT_Patch "cloog-ppl-${CT_CLOOG_VERSION}" nochdir
    24     CT_Popd
    25 }
    26 
    27 do_cloog() {
    28     mkdir -p "${CT_BUILD_DIR}/build-cloog-ppl"
    29     cd "${CT_BUILD_DIR}/build-cloog-ppl"
    30 
    31     CT_DoStep INFO "Installing CLooG/ppl"
    32 
    33     CT_DoLog EXTRA "Configuring CLooG/ppl"
    34     CFLAGS="${CT_CFLAGS_FOR_HOST}"      \
    35     CT_DoExecLog ALL                    \
    36     "${CT_SRC_DIR}/cloog-ppl/configure" \
    37         --build=${CT_BUILD}             \
    38         --host=${CT_HOST}               \
    39         --prefix="${CT_PREFIX_DIR}"     \
    40         --with-gmp="${CT_PREFIX_DIR}"   \
    41         --with-ppl="${CT_PREFIX_DIR}"   \
    42         --enable-shared                 \
    43         --disable-static                \
    44         --with-bits=gmp
    45 
    46     CT_DoLog EXTRA "Building CLooG/ppl"
    47     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    48 
    49     if [ "${CT_COMP_LIBS_CHECK}" = "y" ]; then
    50         CT_DoLog EXTRA "Checking CLooG/ppl"
    51         CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
    52     fi
    53 
    54     CT_DoLog EXTRA "Installing CLooG/ppl"
    55     CT_DoExecLog ALL make install
    56 
    57     # Remove spuriously installed file
    58     CT_DoExecLog ALL rm -f "${CT_PREFIX_DIR}/bin/cloog"
    59 
    60     CT_EndStep
    61 }
    62 
    63 fi # CT_PPL_CLOOG_MPC