scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Aug 30 00:57:40 2009 +0200 (2009-08-30)
changeset 1495 2542421e3321
parent 1247 9759fe659b4f
child 1761 88020b2c3246
permissions -rw-r--r--
tools wrapper: introduce the silent WRAPPER_NEEDED config option

Add the WRAPPER_NEEDED silent config option, that can be selected by
components that require it (companion libs so far).
Rely on this config option when deciding to install the wrapper,
instead of checking GMP/MPFR or PPL/CLoog/MPC.
     1 # Build script for D.U.M.A.
     2 
     3 do_debug_duma_get() {
     4     # Downloading an non-existing file from sourceforge will give you an
     5     # HTML file containing an error message, instead of returning a 404.
     6     # Sigh...
     7     CT_GetFile "duma_${CT_DUMA_VERSION}" .tar.gz http://mesh.dl.sourceforge.net/sourceforge/duma/
     8     # Downloading from sourceforge may leave garbage, cleanup
     9     CT_DoExecLog ALL rm -f "${CT_TARBALLS_DIR}/showfiles.php"*
    10 }
    11 
    12 do_debug_duma_extract() {
    13     CT_Extract "duma_${CT_DUMA_VERSION}"
    14     CT_Pushd "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}"
    15     # Even if DUMA uses _ and not -, crosstool-NG uses the dash to split the
    16     # name from the version in order to find the appropriate patches
    17     # YEM: FIXME: make CT_Patch more intelligent, Eg.: CT_Patch duma _ "${CT_DUMA_VERSION}"
    18     CT_DoExecLog DEBUG touch "${CT_SRC_DIR}/.duma-${CT_DUMA_VERSION}.extracted"
    19     CT_Patch "duma-${CT_DUMA_VERSION}" nochdir
    20     CT_Popd
    21 }
    22 
    23 do_debug_duma_build() {
    24     CT_DoStep INFO "Installing D.U.M.A."
    25     CT_DoLog EXTRA "Copying sources"
    26     cp -a "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}" "${CT_BUILD_DIR}/build-duma"
    27     CT_Pushd "${CT_BUILD_DIR}/build-duma"
    28 
    29     DUMA_CPP=
    30     [ "${CT_CC_LANG_CXX}" = "y" ] && DUMA_CPP=1
    31 
    32     # The shared library needs some love: some version have libduma.so.0.0,
    33     # while others have libduma.so.0.0.0
    34     duma_so=$(make -n -p 2>&1 |grep -E '^libduma.so[^:]*:' |head -n 1 |cut -d : -f 1)
    35 
    36     libs=
    37     [ "${CT_DUMA_A}" = "y" ] && libs="${libs} libduma.a"
    38     [ "${CT_DUMA_SO}" = "y" ] && libs="${libs} ${duma_so}"
    39     libs="${libs# }"
    40     CT_DoLog EXTRA "Building libraries '${libs}'"
    41     CT_DoExecLog ALL                    \
    42     make HOSTCC="${CT_BUILD}-gcc"       \
    43          CC="${CT_TARGET}-gcc"          \
    44          CXX="${CT_TARGET}-gcc"         \
    45          RANLIB="${CT_TARGET}-ranlib"   \
    46          DUMA_CPP="${DUMA_CPP}"         \
    47          ${libs}
    48     CT_DoLog EXTRA "Installing libraries '${libs}'"
    49     CT_DoExecLog ALL install -m 644 ${libs} "${CT_SYSROOT_DIR}/usr/lib"
    50     if [ "${CT_DUMA_SO}" = "y" ]; then
    51         CT_DoLog EXTRA "Installing shared library link"
    52         ln -vsf ${duma_so} "${CT_SYSROOT_DIR}/usr/lib/libduma.so"   2>&1 |CT_DoLog ALL
    53         CT_DoLog EXTRA "Installing wrapper script"
    54         mkdir -p "${CT_DEBUGROOT_DIR}/usr/bin"
    55         # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A.
    56         sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;'   \
    57             "${CT_LIB_DIR}/scripts/build/debug/duma.in"                     \
    58             >"${CT_DEBUGROOT_DIR}/usr/bin/duma"
    59         chmod 755 "${CT_DEBUGROOT_DIR}/usr/bin/duma"
    60     fi
    61 
    62     CT_Popd
    63     CT_EndStep
    64 }
    65