scripts/build/libc/mingw.sh
author Bart vdr Meulen <bartvdrmeulen@gmail.com>
Sun Jul 11 21:36:20 2010 +0200 (2010-07-11)
changeset 2017 f637b6c2162b
child 2018 860de6018501
permissions -rw-r--r--
kernel: add mingw

Add the option to build a cross-compiler for kernel type 'mingw'.
The resulting cross-compiler can be used to build applications on a Linux host
that can be run on a Windows target.

Compiler is build using the mingwrt and w32-api packages aviable from the
MinGW project (http://sourceforge.net/projects/mingw).

The windows headers (w32-api package) are extracting with the kernel_headers
step The libraries and other headers from both packages are build and
installed in the various steps of libc

Signed-off-by: Bart vdr Meulen <bartvdrmeulen@gmail.com>
[yann.morin.1998@anciens.enib.fr: fix kernel headers comment, don't "return 0"]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
bartvdrmeulen@2017
     1
do_libc_get() {
bartvdrmeulen@2017
     2
    CT_GetFile "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" \
bartvdrmeulen@2017
     3
        http://downloads.sourceforge.net/sourceforge/mingw
bartvdrmeulen@2017
     4
}
bartvdrmeulen@2017
     5
bartvdrmeulen@2017
     6
do_libc_extract() {
bartvdrmeulen@2017
     7
    CT_Extract "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src"
bartvdrmeulen@2017
     8
}
bartvdrmeulen@2017
     9
bartvdrmeulen@2017
    10
do_libc_check_config() {
bartvdrmeulen@2017
    11
    :
bartvdrmeulen@2017
    12
}
bartvdrmeulen@2017
    13
bartvdrmeulen@2017
    14
do_libc_headers() {
bartvdrmeulen@2017
    15
    CT_DoStep INFO "Installing C library headers"
bartvdrmeulen@2017
    16
bartvdrmeulen@2017
    17
    CT_DoLog EXTRA "Installing MinGW Runtime headers"
bartvdrmeulen@2017
    18
    mkdir -p "${CT_SYSROOT_DIR}/include"
bartvdrmeulen@2017
    19
    cp -r ${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/include \
bartvdrmeulen@2017
    20
          ${CT_SYSROOT_DIR}
bartvdrmeulen@2017
    21
bartvdrmeulen@2017
    22
    CT_EndStep
bartvdrmeulen@2017
    23
}
bartvdrmeulen@2017
    24
bartvdrmeulen@2017
    25
do_libc_start_files() {
bartvdrmeulen@2017
    26
    :
bartvdrmeulen@2017
    27
}
bartvdrmeulen@2017
    28
bartvdrmeulen@2017
    29
do_libc() {
bartvdrmeulen@2017
    30
    CT_DoStep INFO "Building MinGW files"
bartvdrmeulen@2017
    31
bartvdrmeulen@2017
    32
    CT_DoLog EXTRA "Configuring W32-API"
bartvdrmeulen@2017
    33
bartvdrmeulen@2017
    34
    mkdir -p "${CT_BUILD_DIR}/build-w32api"
bartvdrmeulen@2017
    35
    cd "${CT_BUILD_DIR}/build-w32api"
bartvdrmeulen@2017
    36
bartvdrmeulen@2017
    37
    CFLAGS="-I${CT_SYSROOT_DIR}/include"                          \
bartvdrmeulen@2017
    38
    LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                             \
bartvdrmeulen@2017
    39
    CT_DoExecLog ALL                                              \
bartvdrmeulen@2017
    40
    "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32/configure" \
bartvdrmeulen@2017
    41
        --prefix=${CT_SYSROOT_DIR}                                \
bartvdrmeulen@2017
    42
        --host=${CT_TARGET}
bartvdrmeulen@2017
    43
bartvdrmeulen@2017
    44
    CT_DoLog EXTRA "Building W32-API"
bartvdrmeulen@2017
    45
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
bartvdrmeulen@2017
    46
bartvdrmeulen@2017
    47
    CT_DoLog EXTRA "Installing W32-API"
bartvdrmeulen@2017
    48
    CT_DoExecLog ALL make install
bartvdrmeulen@2017
    49
bartvdrmeulen@2017
    50
    CT_DoLog EXTRA "Configuring MinGW Runtime"
bartvdrmeulen@2017
    51
bartvdrmeulen@2017
    52
    mkdir -p "${CT_BUILD_DIR}/build-mingwrt"
bartvdrmeulen@2017
    53
    cd "${CT_BUILD_DIR}/build-mingwrt"
bartvdrmeulen@2017
    54
bartvdrmeulen@2017
    55
    CFLAGS="-I${CT_SYSROOT_DIR}/include"                            \
bartvdrmeulen@2017
    56
    LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                               \
bartvdrmeulen@2017
    57
    CT_DoExecLog ALL                                                \
bartvdrmeulen@2017
    58
    "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/configure" \
bartvdrmeulen@2017
    59
        --prefix=${CT_SYSROOT_DIR}/                                 \
bartvdrmeulen@2017
    60
        --host=${CT_TARGET}
bartvdrmeulen@2017
    61
bartvdrmeulen@2017
    62
    CT_DoLog EXTRA "Building MinGW Runtime"
bartvdrmeulen@2017
    63
    CT_DoExecLog ALL make ${PARALLELMFLAGS}
bartvdrmeulen@2017
    64
bartvdrmeulen@2017
    65
    CT_DoLog EXTRA "Installing MinGW Runtime"
bartvdrmeulen@2017
    66
    CT_DoExecLog ALL make install
bartvdrmeulen@2017
    67
bartvdrmeulen@2017
    68
    CT_EndStep
bartvdrmeulen@2017
    69
}
bartvdrmeulen@2017
    70
bartvdrmeulen@2017
    71
do_libc_finish() {
bartvdrmeulen@2017
    72
 :
bartvdrmeulen@2017
    73
}
bartvdrmeulen@2017
    74