scripts/build/libc/mingw.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 11 23:43:52 2014 +0200 (2014-05-11)
changeset 3320 78af1c99bc6d
parent 3112 6cb56b3f2d34
permissions -rw-r--r--
scripts/functions: add target_endian_le and target_endian_be

We currently define target_endian_el and target_endian_eb to be the
tuple extension depending on endianness, defined to be respectively
'el' or 'eb' according to the endianness.

Some architecture do not use 'el' or 'eb', but use 'le' or 'be'.

Provide that as well, as two new variables: target_endian_le and
target_endian_be.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Cody P Schafer <dev@codyps.com>
     1 # Copyright 2012 Yann Diorcet
     2 # Licensed under the GPL v2. See COPYING in the root of this package
     3 
     4 do_libc_get() { 
     5     CT_GetFile "mingw-w64-v${CT_WINAPI_VERSION}" \
     6         http://downloads.sourceforge.net/sourceforge/mingw-w64
     7 }
     8 
     9 do_libc_extract() {
    10     CT_Extract "mingw-w64-v${CT_WINAPI_VERSION}"
    11     CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/"
    12     CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}"
    13     CT_Popd
    14 }
    15 
    16 do_libc_check_config() {
    17     :
    18 }
    19 
    20 do_libc_start_files() {
    21     local -a sdk_opts
    22 
    23     CT_DoStep INFO "Installing C library headers"
    24 
    25     case "${CT_MINGW_DIRECTX}:${CT_MINGW_DDK}" in
    26         y:y)    sdk_opts+=( "--enable-sdk=all"     );;
    27         y:)     sdk_opts+=( "--enable-sdk=directx" );;
    28         :y)     sdk_opts+=( "--enable-sdk=ddk"     );;
    29         :)      ;;
    30     esac
    31 
    32     CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-headers"
    33 
    34     CT_DoLog EXTRA "Configuring Headers"
    35 
    36     CT_DoExecLog CFG        \
    37     "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-headers/configure" \
    38         --build=${CT_BUILD} \
    39         --host=${CT_TARGET} \
    40         --prefix=/usr       \
    41         "${sdk_opts[@]}"
    42 
    43     CT_DoLog EXTRA "Compile Headers"
    44     CT_DoExecLog ALL make
    45 
    46     CT_DoLog EXTRA "Installing Headers"
    47     CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR}
    48     
    49     CT_Popd
    50 
    51     # It seems mingw is strangely set up to look into /mingw instead of
    52     # /usr (notably when looking for the headers). This symlink is
    53     # here to workaround this, and seems to be here to last... :-/
    54     CT_DoExecLog ALL ln -sv "usr/${CT_TARGET}" "${CT_SYSROOT_DIR}/mingw"
    55 
    56     CT_EndStep
    57 }
    58 
    59 do_libc() {
    60     CT_DoStep INFO "Building mingw-w64 files"
    61 
    62     CT_DoLog EXTRA "Configuring mingw-w64-crt"
    63 
    64     CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-crt"
    65 
    66     CT_DoExecLog CFG                                                        \
    67     "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-crt/configure" \
    68         --prefix=/usr                                                       \
    69         --build=${CT_BUILD}                                                 \
    70         --host=${CT_TARGET}                                                 \
    71 
    72     CT_DoLog EXTRA "Building mingw-w64-crt"
    73     CT_DoExecLog ALL make ${JOBSFLAGS}
    74 
    75     CT_DoLog EXTRA "Installing mingw-w64-crt"
    76     CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR}
    77 
    78     CT_EndStep
    79 }