scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Apr 15 00:22:42 2011 +0200 (2011-04-15)
changeset 2544 751c3f735ada
parent 1761 88020b2c3246
child 2867 ef6dad58ab1c
permissions -rw-r--r--
scripts/internals: do not remove lib{32,64}/ symlinks after build

During the build, we create lib{32,64}/ symlinks out of the sysroot.
In some cases (eg. mingw32 target), these symlinks are still required
when running the toolchain. For other combinations, the symlinks are
without incidence, so they can be safely kept after the build.

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