scripts/build/libc/mingw.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Feb 01 00:19:25 2011 +0100 (2011-02-01)
branch1.9
changeset 2295 0425b71c8596
parent 2154 250cdcc86441
permissions -rw-r--r--
1.9: close branch

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 do_libc_get() {
     2     CT_GetFile "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" \
     3         http://downloads.sourceforge.net/sourceforge/mingw
     4 
     5     if [ -n "${CT_MINGW_DIRECTX}" ]; then
     6         CT_GetFile "directx-devel" \
     7             http://www.libsdl.org/extras/win32/common
     8     fi
     9     if [ -n "${CT_MINGW_OPENGL}" ]; then
    10         CT_GetFile "opengl-devel" \
    11             http://www.libsdl.org/extras/win32/common
    12     fi
    13     if [ -n "${CT_MINGW_PDCURSES}" ]; then
    14         CT_GetFile "PDCurses-${CT_MINGW_PDCURSES_VERSION}" \
    15             http://downloads.sourceforge.net/sourceforge/pdcurses
    16     fi
    17     if [ -n "${CT_MINGW_GNURX}" ]; then
    18         CT_GetFile "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src" \
    19             http://downloads.sourceforge.net/sourceforge/mingw
    20     fi
    21 }
    22 
    23 do_libc_extract() {
    24     CT_Extract "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src"
    25 
    26     if [ -n "${CT_MINGW_PDCURSES}" ]; then
    27         CT_Extract "PDCurses-${CT_MINGW_PDCURSES_VERSION}"
    28         CT_Patch "PDCurses" "${CT_MINGW_PDCURSES_VERSION}"
    29     fi
    30     if [ -n "${CT_MINGW_GNURX}" ]; then
    31         CT_Extract "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src"
    32         CT_Patch "mingw-libgnurx" "${CT_MINGW_GNURX_VERSION}"
    33     fi
    34 }
    35 
    36 do_libc_check_config() {
    37     :
    38 }
    39 
    40 do_libc_headers() {
    41     CT_DoStep INFO "Installing C library headers"
    42 
    43     CT_DoLog EXTRA "Installing MinGW Runtime headers"
    44     mkdir -p "${CT_HEADERS_DIR}"
    45     cp -r ${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/include/* \
    46           ${CT_HEADERS_DIR}
    47 
    48     # It seems mingw is strangely set up to look into /mingw instead of
    49     # /usr (notably when looking for the headers). This symlink is
    50     # here to workaround this, and seems to be here to last... :-/
    51     CT_DoExecLog ALL ln -sv "usr" "${CT_SYSROOT_DIR}/mingw"
    52 
    53     CT_EndStep
    54 }
    55 
    56 do_libc_start_files() {
    57     :
    58 }
    59 
    60 do_libc() {
    61     CT_DoStep INFO "Building MinGW files"
    62 
    63     CT_DoLog EXTRA "Configuring W32-API"
    64 
    65     mkdir -p "${CT_BUILD_DIR}/build-w32api"
    66     cd "${CT_BUILD_DIR}/build-w32api"
    67 
    68     CFLAGS="-I${CT_HEADERS_DIR}"                                  \
    69     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                             \
    70     CT_DoExecLog CFG                                              \
    71     "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32/configure" \
    72         --prefix=${CT_SYSROOT_DIR}                                \
    73         --includedir=${CT_HEADERS_DIR}                            \
    74         --host=${CT_TARGET}
    75 
    76     CT_DoLog EXTRA "Building W32-API"
    77     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    78 
    79     CT_DoLog EXTRA "Installing W32-API"
    80     CT_DoExecLog ALL make install
    81 
    82     CT_DoLog EXTRA "Configuring MinGW Runtime"
    83 
    84     mkdir -p "${CT_BUILD_DIR}/build-mingwrt"
    85     cd "${CT_BUILD_DIR}/build-mingwrt"
    86 
    87     CFLAGS="-I${CT_HEADERS_DIR}"                                    \
    88     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                               \
    89     CT_DoExecLog CFG                                                \
    90     "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/configure" \
    91         --prefix=${CT_SYSROOT_DIR}/                                 \
    92         --includedir=${CT_HEADERS_DIR}                              \
    93         --host=${CT_TARGET}
    94 
    95     CT_DoLog EXTRA "Building MinGW Runtime"
    96     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    97 
    98     CT_DoLog EXTRA "Installing MinGW Runtime"
    99     CT_DoExecLog ALL make install
   100 
   101     CT_EndStep
   102 }
   103 
   104 do_libc_finish() {
   105     CT_DoStep INFO "Installing MinGW Development libraries"
   106 
   107     CT_Pushd "${CT_SYSROOT_DIR}"
   108     if [ -n "${CT_MINGW_DIRECTX}" ]; then
   109         CT_DoLog EXTRA "Installing DirectX development package"
   110         CT_Extract nochdir "directx-devel"
   111     fi
   112     if [ -n "${CT_MINGW_OPENGL}" ]; then
   113         CT_DoLog EXTRA "Installing OpenGL development package"
   114         CT_Extract nochdir "opengl-devel"
   115     fi
   116     CT_Popd
   117 
   118     if [ -n "${CT_MINGW_PDCURSES}" ]; then
   119         CT_DoLog EXTRA "Building PDCurses development files"
   120         mkdir -p "${CT_BUILD_DIR}/build-pdcurses"
   121         cd "${CT_BUILD_DIR}/build-pdcurses"
   122 
   123         make -f ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/win32/mingwin32.mak libs \
   124             PDCURSES_SRCDIR=${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION} \
   125             CROSS_COMPILE=${CT_TARGET}-
   126 
   127         CT_DoLog EXTRA "Installing PDCurses development files"
   128         chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h
   129         cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \
   130            ${CT_HEADERS_DIR}/
   131         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a
   132         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a
   133     fi
   134 
   135     if [ -n "${CT_MINGW_GNURX}" ]; then
   136         CT_DoLog EXTRA "Configuring GnuRX development files"
   137 
   138         mkdir -p "${CT_BUILD_DIR}/build-gnurx"
   139         cd "${CT_BUILD_DIR}/build-gnurx"
   140 
   141         CFLAGS="${CT_CFLAGS_FOR_TARGET}"                                    \
   142         CT_DoExecLog CFG                                                    \
   143         "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}/configure"  \
   144             --build=${CT_BUILD}                                             \
   145             --host=${CT_TARGET}                                             \
   146             --prefix=${CT_SYSROOT_DIR}                                      \
   147             --includedir=${CT_HEADERS_DIR}                                  \
   148             --enable-shared                                                 \
   149             --enable-static
   150 
   151         CT_DoLog EXTRA "Building GnuRX development files"
   152         CT_DoExecLog ALL make ${PARALLELMFLAGS}
   153 
   154         CT_DoLog EXTRA "Installing GnuRX development files"
   155         CT_DoExecLog ALL make install-dev
   156     fi
   157 
   158     CT_EndStep
   159 }
   160