scripts/build/debug/200-duma.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Feb 13 21:47:25 2012 +0100 (2012-02-13)
changeset 2883 cea814c9932a
parent 1901 bdb3a98e064b
child 2992 e31a3bfdf863
permissions -rw-r--r--
libc/glibc: do not consume parameters when parsing them

Currently, there are two constructs used to parse arguments in
glibc backends, one that consumes args as they are parsed, and
one that does not.

Always use the construct that does not eat args as they are parsed.

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://kent.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