scripts/build/elf2flt.sh
changeset 1337 7f742f73c2d1
child 1338 a3f2c235962c
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/scripts/build/elf2flt.sh	Wed May 13 20:55:15 2009 +0000
     1.3 @@ -0,0 +1,75 @@
     1.4 +# This file adds functions to build elf2flt
     1.5 +# Copyright 2009 John Williams
     1.6 +# Copyright 2007 Yann E. MORIN
     1.7 +# Licensed under the GPL v2. See COPYING in the root of this package
     1.8 +
     1.9 +# Download elf2flt
    1.10 +do_elf2flt_get() {
    1.11 +    CT_GetCVS "elf2flt-cvs-${CT_ELF2FLT_VERSION}"                    \
    1.12 +              ":pserver:anonymous@cvs.uclinux.org:/var/cvs"  \
    1.13 +              "elf2flt"                                            \
    1.14 +              "" \
    1.15 +              "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
    1.16 +}
    1.17 +
    1.18 +# Extract elf2flt
    1.19 +do_elf2flt_extract() {
    1.20 +    CT_Extract "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
    1.21 +    CT_Patch "elf2flt-cvs-${CT_ELF2FLT_VERSION}"
    1.22 +}
    1.23 +
    1.24 +# Build elf2flt
    1.25 +do_elf2flt() {
    1.26 +    [ -z ${CT_KERNEL_UCLINUX_BINFMT_FLAT} ] && return 0
    1.27 +    mkdir -p "${CT_BUILD_DIR}/build-elf2flt"
    1.28 +    cd "${CT_BUILD_DIR}/build-elf2flt"
    1.29 +
    1.30 +    CT_DoStep INFO "Installing elf2flt"
    1.31 +
    1.32 +    elf2flt_opts=
    1.33 +    binutils_bld=${CT_BUILD_DIR}/build-binutils
    1.34 +    binutils_src=${CT_SRC_DIR}/binutils-${CT_BINUTILS_VERSION}
    1.35 +
    1.36 +    CT_DoLog EXTRA "Configuring elf2flt"
    1.37 +    CFLAGS="${CT_CFLAGS_FOR_HOST}"                              \
    1.38 +    CT_DoExecLog ALL                                            \
    1.39 +    "${CT_SRC_DIR}/elf2flt-cvs-${CT_ELF2FLT_VERSION}/configure" \
    1.40 +        --build=${CT_BUILD}                                     \
    1.41 +        --host=${CT_HOST}                                       \
    1.42 +        --target=${CT_TARGET}                                   \
    1.43 +        --prefix=${CT_PREFIX_DIR}                               \
    1.44 +        --with-bfd-include-dir=${binutils_bld}/bfd              \
    1.45 +        --with-binutils-include-dir=${binutils_src}/include     \
    1.46 +        --with-libbfd=${binutils_bld}/bfd/libbfd.a              \
    1.47 +        --with-libiberty=${binutils_bld}/libiberty/libiberty.a  \
    1.48 +        ${elf2flt_opts}                                         \
    1.49 +        ${CT_ELF2FLT_EXTRA_CONFIG}			
    1.50 +
    1.51 +    CT_DoLog EXTRA "Building elf2flt"
    1.52 +    CT_DoExecLog ALL make ${PARALLELMFLAGS}
    1.53 +
    1.54 +    CT_DoLog EXTRA "Installing elf2flt"
    1.55 +    CT_DoExecLog ALL make install
    1.56 +
    1.57 +    # Make those new tools available to the core C compilers to come.
    1.58 +    # Note: some components want the ${TARGET}-{ar,as,ld,strip} commands as
    1.59 +    # well. Create that.
    1.60 +    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin"
    1.61 +    mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin"
    1.62 +    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin"
    1.63 +    mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin"
    1.64 +    for t in elf2flt flthdr; do
    1.65 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
    1.66 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_STATIC_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
    1.67 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/${CT_TARGET}/bin/${t}"
    1.68 +        ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
    1.69 +    done 2>&1 |CT_DoLog ALL
    1.70 +
    1.71 +    CT_EndStep
    1.72 +}
    1.73 +
    1.74 +# Now on for the target libraries
    1.75 +do_elf2flt_target() {
    1.76 +    exit -1
    1.77 +}
    1.78 +