scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Apr 06 22:30:57 2011 +0200 (2011-04-06)
changeset 2381 0ca0f85a4b2a
parent 1761 88020b2c3246
child 2867 ef6dad58ab1c
permissions -rw-r--r--
complibs: disable building shared libs

Managing the shared version of the companion libraries
has become cumbersome.

Also, it will one day be possible to use the companion
libraries from the host distribution, and then we will
be able to easily use either shared or static libs.

As a side note, while working on the canadian-rework
series, it has become quite more complex to properly
handle shared companion libraries, as they need to be
built both for the build and gost systems. That's not
easy to handle. At all.

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