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>
yann@571
     1
# Build script for D.U.M.A.
yann@479
     2
yann@479
     3
do_debug_duma_get() {
yann@1489
     4
    # Downloading an non-existing file from sourceforge will give you an
yann@1489
     5
    # HTML file containing an error message, instead of returning a 404.
yann@1489
     6
    # Sigh...
yann@1489
     7
    CT_GetFile "duma_${CT_DUMA_VERSION}" .tar.gz http://mesh.dl.sourceforge.net/sourceforge/duma/
yann@1489
     8
    # Downloading from sourceforge may leave garbage, cleanup
yann@1126
     9
    CT_DoExecLog ALL rm -f "${CT_TARBALLS_DIR}/showfiles.php"*
yann@479
    10
}
yann@479
    11
yann@479
    12
do_debug_duma_extract() {
yann@1126
    13
    CT_Extract "duma_${CT_DUMA_VERSION}"
yann@1126
    14
    CT_Pushd "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}"
yann@1901
    15
    CT_Patch nochdir "duma" "${CT_DUMA_VERSION}"
yann@1126
    16
    CT_Popd
yann@479
    17
}
yann@479
    18
yann@479
    19
do_debug_duma_build() {
yann@479
    20
    CT_DoStep INFO "Installing D.U.M.A."
yann@479
    21
    CT_DoLog EXTRA "Copying sources"
yann@1125
    22
    cp -a "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}" "${CT_BUILD_DIR}/build-duma"
yann@479
    23
    CT_Pushd "${CT_BUILD_DIR}/build-duma"
yann@479
    24
yann@479
    25
    DUMA_CPP=
yann@479
    26
    [ "${CT_CC_LANG_CXX}" = "y" ] && DUMA_CPP=1
yann@479
    27
yann@571
    28
    # The shared library needs some love: some version have libduma.so.0.0,
yann@571
    29
    # while others have libduma.so.0.0.0
yann@1247
    30
    duma_so=$(make -n -p 2>&1 |grep -E '^libduma.so[^:]*:' |head -n 1 |cut -d : -f 1)
yann@571
    31
yann@479
    32
    libs=
yann@479
    33
    [ "${CT_DUMA_A}" = "y" ] && libs="${libs} libduma.a"
yann@571
    34
    [ "${CT_DUMA_SO}" = "y" ] && libs="${libs} ${duma_so}"
yann@571
    35
    libs="${libs# }"
yann@571
    36
    CT_DoLog EXTRA "Building libraries '${libs}'"
yann@669
    37
    CT_DoExecLog ALL                    \
yann@1041
    38
    make HOSTCC="${CT_BUILD}-gcc"       \
yann@571
    39
         CC="${CT_TARGET}-gcc"          \
yann@581
    40
         CXX="${CT_TARGET}-gcc"         \
yann@571
    41
         RANLIB="${CT_TARGET}-ranlib"   \
yann@571
    42
         DUMA_CPP="${DUMA_CPP}"         \
yann@669
    43
         ${libs}
yann@571
    44
    CT_DoLog EXTRA "Installing libraries '${libs}'"
yann@669
    45
    CT_DoExecLog ALL install -m 644 ${libs} "${CT_SYSROOT_DIR}/usr/lib"
yann@479
    46
    if [ "${CT_DUMA_SO}" = "y" ]; then
yann@571
    47
        CT_DoLog EXTRA "Installing shared library link"
yann@571
    48
        ln -vsf ${duma_so} "${CT_SYSROOT_DIR}/usr/lib/libduma.so"   2>&1 |CT_DoLog ALL
yann@571
    49
        CT_DoLog EXTRA "Installing wrapper script"
yann@1219
    50
        mkdir -p "${CT_DEBUGROOT_DIR}/usr/bin"
yann@571
    51
        # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A.
yann@635
    52
        sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;'   \
yann@635
    53
            "${CT_LIB_DIR}/scripts/build/debug/duma.in"                     \
yann@1219
    54
            >"${CT_DEBUGROOT_DIR}/usr/bin/duma"
yann@1219
    55
        chmod 755 "${CT_DEBUGROOT_DIR}/usr/bin/duma"
yann@479
    56
    fi
yann@479
    57
yann@571
    58
    CT_Popd
yann@479
    59
    CT_EndStep
yann@479
    60
}
yann@479
    61