scripts/build/companion_libs/libelf.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jan 22 23:20:18 2011 +0100 (2011-01-22)
changeset 2305 2ed26c646568
parent 2216 81b4c0efa46f
child 2332 cc0587459152
permissions -rw-r--r--
scripts: create the makeinfo wrapper before we set PATH

If we set PATH to the tools wrappers before we create the
makeinfo wrapper, then we may well wrap an existing wrapper
from a previous run.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@479
     1
# Build script for libelf
yann@479
     2
yann@1811
     3
do_libelf_get() { :; }
yann@1811
     4
do_libelf_extract() { :; }
yann@1811
     5
do_libelf() { :; }
yann@1811
     6
do_libelf_target() { :; }
yann@1811
     7
yann@1811
     8
if [ "${CT_LIBELF}" = "y" -o "${CT_LIBELF_TARGET}" = "y" ]; then
yann@1811
     9
yann@1811
    10
do_libelf_get() {
yann@479
    11
    # The server hosting libelf will return an "HTTP 300 : Multiple Choices"
yann@479
    12
    # error code if we try to download a file that does not exists there.
yann@479
    13
    # So we have to request the file with an explicit extension.
yann@479
    14
    CT_GetFile "libelf-${CT_LIBELF_VERSION}" .tar.gz http://www.mr511.de/software/
yann@479
    15
}
yann@479
    16
yann@1811
    17
do_libelf_extract() {
yann@1126
    18
    CT_Extract "libelf-${CT_LIBELF_VERSION}"
yann@1901
    19
    CT_Patch "libelf" "${CT_LIBELF_VERSION}"
yann@479
    20
}
yann@479
    21
yann@1811
    22
if [ "${CT_LIBELF}" = "y" ]; then
yann@1811
    23
yann@1811
    24
do_libelf() {
yann@1918
    25
    local -a libelf_opts
yann@1918
    26
yann@1918
    27
    CT_DoStep INFO "Installing libelf"
yann@1918
    28
    mkdir -p "${CT_BUILD_DIR}/build-libelf"
yann@1918
    29
    CT_Pushd "${CT_BUILD_DIR}/build-libelf"
yann@1918
    30
yann@1918
    31
    CT_DoLog EXTRA "Configuring libelf"
yann@1918
    32
yann@1918
    33
    if [ "${CT_COMPLIBS_SHARED}" = "y" ]; then
yann@1918
    34
        libelf_opts+=( --enable-shared --disable-static )
yann@1918
    35
    else
yann@1918
    36
        libelf_opts+=( --disable-shared --enable-static )
yann@1918
    37
    fi
yann@1918
    38
kalle@2216
    39
    CC="${CT_HOST}-gcc"                                     \
yann@2242
    40
    CFLAGS="-fPIC"                                          \
anthony@2154
    41
    CT_DoExecLog CFG                                        \
yann@1918
    42
    "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure"   \
yann@1918
    43
        --build=${CT_BUILD}                                 \
yann@1918
    44
        --host=${CT_HOST}                                   \
yann@1918
    45
        --target=${CT_TARGET}                               \
yann@1918
    46
        --prefix="${CT_COMPLIBS_DIR}"                       \
yann@1918
    47
        --enable-compat                                     \
yann@1918
    48
        --enable-elf64                                      \
yann@1918
    49
        --enable-extended-format                            \
yann@1918
    50
        "${libelf_opts[@]}"
yann@1918
    51
yann@1918
    52
    CT_DoLog EXTRA "Building libelf"
yann@1918
    53
    CT_DoExecLog ALL make
yann@1918
    54
yann@1918
    55
    CT_DoLog EXTRA "Installing libelf"
yann@1918
    56
    CT_DoExecLog ALL make install
yann@1918
    57
yann@1918
    58
    CT_Popd
yann@1918
    59
    CT_EndStep
yann@1811
    60
}
yann@1811
    61
yann@1811
    62
fi # CT_LIBELF
yann@1811
    63
yann@1811
    64
if [ "${CT_LIBELF_TARGET}" = "y" ]; then
yann@1811
    65
yann@1811
    66
do_libelf_target() {
yann@1811
    67
    CT_DoStep INFO "Installing libelf for the target"
yann@1917
    68
    mkdir -p "${CT_BUILD_DIR}/build-libelf-for-target"
yann@1917
    69
    CT_Pushd "${CT_BUILD_DIR}/build-libelf-for-target"
yann@479
    70
yann@479
    71
    CT_DoLog EXTRA "Configuring libelf"
yann@479
    72
    CC="${CT_TARGET}-gcc"                                   \
yann@2242
    73
    CFLAGS="-fPIC"                                          \
yann@663
    74
    CT_DoExecLog ALL                                        \
yann@479
    75
    "${CT_SRC_DIR}/libelf-${CT_LIBELF_VERSION}/configure"   \
yann@479
    76
        --build=${CT_BUILD}                                 \
yann@479
    77
        --host=${CT_TARGET}                                 \
yann@479
    78
        --target=${CT_TARGET}                               \
yann@479
    79
        --prefix=/usr                                       \
yann@479
    80
        --enable-compat                                     \
yann@479
    81
        --enable-elf64                                      \
yann@479
    82
        --enable-shared                                     \
yann@479
    83
        --enable-extended-format                            \
yann@663
    84
        --enable-static
yann@479
    85
yann@479
    86
    CT_DoLog EXTRA "Building libelf"
yann@663
    87
    CT_DoExecLog ALL make
yann@479
    88
yann@479
    89
    CT_DoLog EXTRA "Installing libelf"
yann@663
    90
    CT_DoExecLog ALL make instroot="${CT_SYSROOT_DIR}" install
yann@479
    91
yann@479
    92
    CT_Popd
yann@479
    93
    CT_EndStep
yann@479
    94
}
yann@479
    95
yann@1811
    96
fi # CT_LIBELF_TARGET
yann@1811
    97
yann@1811
    98
fi # CT_LIBELF || CT_LIBELF_TARGET