scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:26:53 2011 +0200 (2011-08-02)
changeset 2592 4908eb2b6f17
parent 1761 88020b2c3246
child 2867 ef6dad58ab1c
permissions -rw-r--r--
scripts/functions: cvs retrieval first tries the mirror for tarballs

The cvs download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via cvs.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard cvs retrieval will kick in.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     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     CT_Patch nochdir "duma" "${CT_DUMA_VERSION}"
    16     CT_Popd
    17 }
    18 
    19 do_debug_duma_build() {
    20     CT_DoStep INFO "Installing D.U.M.A."
    21     CT_DoLog EXTRA "Copying sources"
    22     cp -a "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}" "${CT_BUILD_DIR}/build-duma"
    23     CT_Pushd "${CT_BUILD_DIR}/build-duma"
    24 
    25     DUMA_CPP=
    26     [ "${CT_CC_LANG_CXX}" = "y" ] && DUMA_CPP=1
    27 
    28     # The shared library needs some love: some version have libduma.so.0.0,
    29     # while others have libduma.so.0.0.0
    30     duma_so=$(make -n -p 2>&1 |grep -E '^libduma.so[^:]*:' |head -n 1 |cut -d : -f 1)
    31 
    32     libs=
    33     [ "${CT_DUMA_A}" = "y" ] && libs="${libs} libduma.a"
    34     [ "${CT_DUMA_SO}" = "y" ] && libs="${libs} ${duma_so}"
    35     libs="${libs# }"
    36     CT_DoLog EXTRA "Building libraries '${libs}'"
    37     CT_DoExecLog ALL                    \
    38     make HOSTCC="${CT_BUILD}-gcc"       \
    39          CC="${CT_TARGET}-gcc"          \
    40          CXX="${CT_TARGET}-gcc"         \
    41          RANLIB="${CT_TARGET}-ranlib"   \
    42          DUMA_CPP="${DUMA_CPP}"         \
    43          ${libs}
    44     CT_DoLog EXTRA "Installing libraries '${libs}'"
    45     CT_DoExecLog ALL install -m 644 ${libs} "${CT_SYSROOT_DIR}/usr/lib"
    46     if [ "${CT_DUMA_SO}" = "y" ]; then
    47         CT_DoLog EXTRA "Installing shared library link"
    48         ln -vsf ${duma_so} "${CT_SYSROOT_DIR}/usr/lib/libduma.so"   2>&1 |CT_DoLog ALL
    49         CT_DoLog EXTRA "Installing wrapper script"
    50         mkdir -p "${CT_DEBUGROOT_DIR}/usr/bin"
    51         # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A.
    52         sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;'   \
    53             "${CT_LIB_DIR}/scripts/build/debug/duma.in"                     \
    54             >"${CT_DEBUGROOT_DIR}/usr/bin/duma"
    55         chmod 755 "${CT_DEBUGROOT_DIR}/usr/bin/duma"
    56     fi
    57 
    58     CT_Popd
    59     CT_EndStep
    60 }
    61