scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 17 23:06:02 2010 +0100 (2010-01-17)
changeset 1740 c57458bb354d
parent 1247 9759fe659b4f
child 1761 88020b2c3246
permissions -rw-r--r--
configure: do not require hg when configuring in an hg clone

When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
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@1126
    15
    # Even if DUMA uses _ and not -, crosstool-NG uses the dash to split the
yann@1126
    16
    # name from the version in order to find the appropriate patches
yann@1126
    17
    # YEM: FIXME: make CT_Patch more intelligent, Eg.: CT_Patch duma _ "${CT_DUMA_VERSION}"
yann@1238
    18
    CT_DoExecLog DEBUG touch "${CT_SRC_DIR}/.duma-${CT_DUMA_VERSION}.extracted"
yann@1126
    19
    CT_Patch "duma-${CT_DUMA_VERSION}" nochdir
yann@1126
    20
    CT_Popd
yann@479
    21
}
yann@479
    22
yann@479
    23
do_debug_duma_build() {
yann@479
    24
    CT_DoStep INFO "Installing D.U.M.A."
yann@479
    25
    CT_DoLog EXTRA "Copying sources"
yann@1125
    26
    cp -a "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}" "${CT_BUILD_DIR}/build-duma"
yann@479
    27
    CT_Pushd "${CT_BUILD_DIR}/build-duma"
yann@479
    28
yann@479
    29
    DUMA_CPP=
yann@479
    30
    [ "${CT_CC_LANG_CXX}" = "y" ] && DUMA_CPP=1
yann@479
    31
yann@571
    32
    # The shared library needs some love: some version have libduma.so.0.0,
yann@571
    33
    # while others have libduma.so.0.0.0
yann@1247
    34
    duma_so=$(make -n -p 2>&1 |grep -E '^libduma.so[^:]*:' |head -n 1 |cut -d : -f 1)
yann@571
    35
yann@479
    36
    libs=
yann@479
    37
    [ "${CT_DUMA_A}" = "y" ] && libs="${libs} libduma.a"
yann@571
    38
    [ "${CT_DUMA_SO}" = "y" ] && libs="${libs} ${duma_so}"
yann@571
    39
    libs="${libs# }"
yann@571
    40
    CT_DoLog EXTRA "Building libraries '${libs}'"
yann@669
    41
    CT_DoExecLog ALL                    \
yann@1041
    42
    make HOSTCC="${CT_BUILD}-gcc"       \
yann@571
    43
         CC="${CT_TARGET}-gcc"          \
yann@581
    44
         CXX="${CT_TARGET}-gcc"         \
yann@571
    45
         RANLIB="${CT_TARGET}-ranlib"   \
yann@571
    46
         DUMA_CPP="${DUMA_CPP}"         \
yann@669
    47
         ${libs}
yann@571
    48
    CT_DoLog EXTRA "Installing libraries '${libs}'"
yann@669
    49
    CT_DoExecLog ALL install -m 644 ${libs} "${CT_SYSROOT_DIR}/usr/lib"
yann@479
    50
    if [ "${CT_DUMA_SO}" = "y" ]; then
yann@571
    51
        CT_DoLog EXTRA "Installing shared library link"
yann@571
    52
        ln -vsf ${duma_so} "${CT_SYSROOT_DIR}/usr/lib/libduma.so"   2>&1 |CT_DoLog ALL
yann@571
    53
        CT_DoLog EXTRA "Installing wrapper script"
yann@1219
    54
        mkdir -p "${CT_DEBUGROOT_DIR}/usr/bin"
yann@571
    55
        # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A.
yann@635
    56
        sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;'   \
yann@635
    57
            "${CT_LIB_DIR}/scripts/build/debug/duma.in"                     \
yann@1219
    58
            >"${CT_DEBUGROOT_DIR}/usr/bin/duma"
yann@1219
    59
        chmod 755 "${CT_DEBUGROOT_DIR}/usr/bin/duma"
yann@479
    60
    fi
yann@479
    61
yann@571
    62
    CT_Popd
yann@479
    63
    CT_EndStep
yann@479
    64
}
yann@479
    65