scripts/build/debug/200-duma.sh
author Michael Hope <michael.hope@linaro.org>
Wed Nov 16 10:06:21 2011 +1300 (2011-11-16)
changeset 2765 6c5658b8b588
parent 1761 88020b2c3246
child 2867 ef6dad58ab1c
permissions -rw-r--r--
scripts: add support for building manuals

Add support for building the HTML and PDF manuals for the major
components. Implement for binutils, GCC, GDB, and GLIBC.

Always build all manuals and install a subset. Be explicit about the
subset to reduce the clutter and to avoid getting copies of common
manuals like bfd from all of the sourceware based components. Downside of
being explicit is that you need to update it when a new component
comes along.

Build the manuals as part of the last GCC build, namely 'cc' for glibc
based ones and cc_core_pass_2 for baremetal.

An example of the output is at:
http://people.linaro.org/~michaelh/incoming/crosstool-NG/

Signed-off-by: Michael Hope <michael.hope@linaro.org>
[yann.morin.1998@anciens.enib.fr: depends on ! remove docs; gold manual install]
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