scripts/build/companion_libs/libelf.sh
author Michael Hope <michael.hope@linaro.org>
Wed Nov 16 10:06:21 2011 +1300 (2011-11-16)
changeset 2765 6c5658b8b588
parent 2381 0ca0f85a4b2a
child 2905 286b2937c101
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>
     1 # Build script for libelf
     2 
     3 do_libelf_get() { :; }
     4 do_libelf_extract() { :; }
     5 do_libelf() { :; }
     6 do_libelf_target() { :; }
     7 
     8 if [ "${CT_LIBELF}" = "y" -o "${CT_LIBELF_TARGET}" = "y" ]; then
     9 
    10 do_libelf_get() {
    11     # The server hosting libelf will return an "HTTP 300 : Multiple Choices"
    12     # error code if we try to download a file that does not exists there.
    13     # So we have to request the file with an explicit extension.
    14     CT_GetFile "libelf-${CT_LIBELF_VERSION}" .tar.gz http://www.mr511.de/software/
    15 }
    16 
    17 do_libelf_extract() {
    18     CT_Extract "libelf-${CT_LIBELF_VERSION}"
    19     CT_Patch "libelf" "${CT_LIBELF_VERSION}"
    20 }
    21 
    22 if [ "${CT_LIBELF}" = "y" ]; then
    23 
    24 do_libelf() {
    25     CT_DoStep INFO "Installing libelf"
    26     mkdir -p "${CT_BUILD_DIR}/build-libelf"
    27     CT_Pushd "${CT_BUILD_DIR}/build-libelf"
    28 
    29     CT_DoLog EXTRA "Configuring libelf"
    30 
    31     CT_DoExecLog CFG                                        \
    32     CC="${CT_HOST}-gcc"                                     \
    33     CFLAGS="-fPIC"                                          \
    34     "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure"   \
    35         --build=${CT_BUILD}                                 \
    36         --host=${CT_HOST}                                   \
    37         --target=${CT_TARGET}                               \
    38         --prefix="${CT_COMPLIBS_DIR}"                       \
    39         --enable-compat                                     \
    40         --enable-elf64                                      \
    41         --enable-extended-format                            \
    42         --disable-shared                                    \
    43         --enable-static
    44 
    45     CT_DoLog EXTRA "Building libelf"
    46     CT_DoExecLog ALL make
    47 
    48     CT_DoLog EXTRA "Installing libelf"
    49     CT_DoExecLog ALL make install
    50 
    51     CT_Popd
    52     CT_EndStep
    53 }
    54 
    55 fi # CT_LIBELF
    56 
    57 if [ "${CT_LIBELF_TARGET}" = "y" ]; then
    58 
    59 do_libelf_target() {
    60     CT_DoStep INFO "Installing libelf for the target"
    61     mkdir -p "${CT_BUILD_DIR}/build-libelf-for-target"
    62     CT_Pushd "${CT_BUILD_DIR}/build-libelf-for-target"
    63 
    64     CT_DoLog EXTRA "Configuring libelf"
    65     CT_DoExecLog CFG                                        \
    66     CC="${CT_TARGET}-gcc"                                   \
    67     CFLAGS="-fPIC"                                          \
    68     RANLIB="${CT_TARGET}-ranlib"                            \
    69     "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure"   \
    70         --build=${CT_BUILD}                                 \
    71         --host=${CT_TARGET}                                 \
    72         --target=${CT_TARGET}                               \
    73         --prefix=/usr                                       \
    74         --enable-compat                                     \
    75         --enable-elf64                                      \
    76         --enable-shared                                     \
    77         --enable-extended-format                            \
    78         --enable-static
    79 
    80     CT_DoLog EXTRA "Building libelf"
    81     CT_DoExecLog ALL make
    82 
    83     CT_DoLog EXTRA "Installing libelf"
    84     CT_DoExecLog ALL make instroot="${CT_SYSROOT_DIR}" install
    85 
    86     CT_Popd
    87     CT_EndStep
    88 }
    89 
    90 fi # CT_LIBELF_TARGET
    91 
    92 fi # CT_LIBELF || CT_LIBELF_TARGET