scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Sep 30 18:19:18 2008 +0000 (2008-09-30)
changeset 892 187d34a9adf4
parent 669 ca740b4c4262
child 916 68af6b83ff7e
permissions -rw-r--r--
Better handle the second pass core gcc build, differentiating between gcc prior to 4.3 with gcc from 4.3.
Simplify detecting wether gcc is 4.3 and later, or older than 4.3 (we already know from .config).

/trunk/scripts/build/cc/gcc.sh | 22 13 9 0 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
yann@571
     1
# Build script for D.U.M.A.
yann@479
     2
yann@479
     3
is_enabled="${CT_DUMA}"
yann@479
     4
yann@479
     5
do_print_filename() {
yann@479
     6
    [ "${CT_DUMA}" = "y" ] || return 0
yann@479
     7
    echo "duma_${CT_DUMA_VERSION}"
yann@479
     8
}
yann@479
     9
yann@479
    10
do_debug_duma_get() {
yann@479
    11
    CT_GetFile "duma_${CT_DUMA_VERSION}" http://mesh.dl.sourceforge.net/sourceforge/duma/
yann@479
    12
    # D.U.M.A. doesn't separate its name from its version with a dash,
yann@479
    13
    # but with an underscore. Create a link so that crosstool-NG can
yann@479
    14
    # work correctly:
yann@711
    15
    CT_Pushd "${CT_TARBALLS_DIR}"
yann@523
    16
    duma_ext=$(CT_GetFileExtension "duma_${CT_DUMA_VERSION}")
yann@479
    17
    rm -f "duma-${CT_DUMA_VERSION}${duma_ext}"
yann@479
    18
    ln -sf "duma_${CT_DUMA_VERSION}${duma_ext}" "duma-${CT_DUMA_VERSION}${duma_ext}"
yann@711
    19
    # Downloading from sourceforge leaves garbage, cleanup
yann@711
    20
    rm -f showfiles.php\?group_id\=*
yann@711
    21
    CT_Popd
yann@479
    22
}
yann@479
    23
yann@479
    24
do_debug_duma_extract() {
yann@479
    25
    CT_ExtractAndPatch "duma-${CT_DUMA_VERSION}"
yann@479
    26
    cd "${CT_SRC_DIR}"
yann@479
    27
    rm -f "duma-${CT_DUMA_VERSION}"
yann@479
    28
    ln -sf "duma_${CT_DUMA_VERSION}" "duma-${CT_DUMA_VERSION}"
yann@479
    29
}
yann@479
    30
yann@479
    31
do_debug_duma_build() {
yann@479
    32
    CT_DoStep INFO "Installing D.U.M.A."
yann@479
    33
    CT_DoLog EXTRA "Copying sources"
yann@479
    34
    cp -a "${CT_SRC_DIR}/duma_${CT_DUMA_VERSION}" "${CT_BUILD_DIR}/build-duma"
yann@479
    35
    CT_Pushd "${CT_BUILD_DIR}/build-duma"
yann@479
    36
yann@479
    37
    DUMA_CPP=
yann@479
    38
    [ "${CT_CC_LANG_CXX}" = "y" ] && DUMA_CPP=1
yann@479
    39
yann@571
    40
    # The shared library needs some love: some version have libduma.so.0.0,
yann@571
    41
    # while others have libduma.so.0.0.0
yann@571
    42
    duma_so=$(make -n -p 2>&1 |egrep '^libduma.so[^:]*:' |head -n 1 |cut -d : -f 1)
yann@571
    43
yann@479
    44
    libs=
yann@479
    45
    [ "${CT_DUMA_A}" = "y" ] && libs="${libs} libduma.a"
yann@571
    46
    [ "${CT_DUMA_SO}" = "y" ] && libs="${libs} ${duma_so}"
yann@571
    47
    libs="${libs# }"
yann@571
    48
    CT_DoLog EXTRA "Building libraries '${libs}'"
yann@669
    49
    CT_DoExecLog ALL                    \
yann@571
    50
    make HOSTCC="${CT_CC_NATIVE}"       \
yann@571
    51
         HOSTCXX="${CT_CC_NATIVE}"      \
yann@571
    52
         CC="${CT_TARGET}-gcc"          \
yann@581
    53
         CXX="${CT_TARGET}-gcc"         \
yann@571
    54
         RANLIB="${CT_TARGET}-ranlib"   \
yann@571
    55
         DUMA_CPP="${DUMA_CPP}"         \
yann@669
    56
         ${libs}
yann@571
    57
    CT_DoLog EXTRA "Installing libraries '${libs}'"
yann@669
    58
    CT_DoExecLog ALL install -m 644 ${libs} "${CT_SYSROOT_DIR}/usr/lib"
yann@479
    59
    if [ "${CT_DUMA_SO}" = "y" ]; then
yann@571
    60
        CT_DoLog EXTRA "Installing shared library link"
yann@571
    61
        ln -vsf ${duma_so} "${CT_SYSROOT_DIR}/usr/lib/libduma.so"   2>&1 |CT_DoLog ALL
yann@571
    62
        CT_DoLog EXTRA "Installing wrapper script"
yann@571
    63
        mkdir -p "${CT_DEBUG_INSTALL_DIR}/usr/bin"
yann@571
    64
        # Install a simpler, smaller, safer wrapper than the one provided by D.U.M.A.
yann@635
    65
        sed -r -e 's:^LIBDUMA_SO=.*:LIBDUMA_SO=/usr/lib/'"${duma_so}"':;'   \
yann@635
    66
            "${CT_LIB_DIR}/scripts/build/debug/duma.in"                     \
yann@635
    67
            >"${CT_DEBUG_INSTALL_DIR}/usr/bin/duma"
yann@571
    68
        chmod 755 "${CT_DEBUG_INSTALL_DIR}/usr/bin/duma"
yann@479
    69
    fi
yann@479
    70
yann@571
    71
    CT_Popd
yann@479
    72
    CT_EndStep
yann@479
    73
}
yann@479
    74