scripts/build/companion_libs/ppl.sh
author Oron Peled <oron@actcom.co.il>
Mon Aug 03 00:49:25 2009 +0200 (2009-08-03)
changeset 1449 8ad2773e7ae3
parent 1386 7995942261f2
child 1808 a1370757e6a1
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 PPL library
     2 # Copyright 2009 Yann E. MORIN
     3 # Licensed under the GPL v2. See COPYING in the root of this package
     4 
     5 do_ppl_get() { :; }
     6 do_ppl_extract() { :; }
     7 do_ppl() { :; }
     8 do_ppl_target() { :; }
     9 
    10 # Overide functions depending on configuration
    11 if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then
    12 
    13 # Download PPL
    14 do_ppl_get() {
    15     CT_GetFile "ppl-${CT_PPL_VERSION}"                                      \
    16         http://www.cs.unipr.it/ppl/Download/ftp/releases/${CT_PPL_VERSION}  \
    17         ftp://ftp.cs.unipr.it/pub/ppl/releases/${CT_PPL_VERSION}            \
    18         ftp://gcc.gnu.org/pub/gcc/infrastructure
    19 }
    20 
    21 # Extract PPL
    22 do_ppl_extract() {
    23     CT_Extract "ppl-${CT_PPL_VERSION}"
    24     CT_Patch "ppl-${CT_PPL_VERSION}"
    25 }
    26 
    27 do_ppl() {
    28     mkdir -p "${CT_BUILD_DIR}/build-ppl"
    29     cd "${CT_BUILD_DIR}/build-ppl"
    30 
    31     CT_DoStep INFO "Installing PPL"
    32 
    33     CT_DoLog EXTRA "Configuring PPL"
    34     CFLAGS="${CT_CFLAGS_FOR_HOST}"                  \
    35     CXXFLAGS="${CT_CFLAGS_FOR_HOST}"                \
    36     CT_DoExecLog ALL                                \
    37     "${CT_SRC_DIR}/ppl-${CT_PPL_VERSION}/configure" \
    38         --build=${CT_BUILD}                         \
    39         --host=${CT_HOST}                           \
    40         --prefix="${CT_PREFIX_DIR}"                 \
    41         --with-libgmp-prefix="${CT_PREFIX_DIR}"     \
    42         --with-libgmpxx-prefix="${CT_PREFIX_DIR}"   \
    43         --enable-shared                             \
    44         --disable-static                            \
    45         --disable-debugging                         \
    46         --disable-assertions                        \
    47         --disable-ppl_lcdd                          \
    48         --disable-ppl_lpsol
    49 
    50     # Maybe-options:
    51     # --enable-interfaces=...
    52     # --enable-optimization=speed  or sspeed (yes, with 2 's')
    53 
    54     CT_DoLog EXTRA "Building PPL"
    55     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    56 
    57     if [ "${CT_COMP_LIBS_CHECK}" = "y" ]; then
    58         CT_DoLog EXTRA "Checking PPL"
    59         CT_DoExecLog ALL make ${PARALLELMFLAGS} -s check
    60     fi
    61 
    62     CT_DoLog EXTRA "Installing PPL"
    63     CT_DoExecLog ALL make install
    64 
    65     # Remove spuriously installed file
    66     CT_DoExecLog ALL rm -f "${CT_PREFIX_DIR}/bin/ppl-config"
    67 
    68     CT_EndStep
    69 }
    70 
    71 fi # CT_PPL_CLOOG_MPC