scripts/build/libc/mingw.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 17 23:50:03 2010 +0200 (2010-08-17)
changeset 2087 fefd9a3f8180
parent 2086 32f29d1e2db1
child 2154 250cdcc86441
permissions -rw-r--r--
libc/mingw: fix space-damage

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     CT_DoExecLog ALL ln -sv "usr" "${CT_SYSROOT_DIR}/mingw"
    48 
    49     CT_EndStep
    50 }
    51 
    52 do_libc_start_files() {
    53     :
    54 }
    55 
    56 do_libc() {
    57     CT_DoStep INFO "Building MinGW files"
    58 
    59     CT_DoLog EXTRA "Configuring W32-API"
    60 
    61     mkdir -p "${CT_BUILD_DIR}/build-w32api"
    62     cd "${CT_BUILD_DIR}/build-w32api"
    63 
    64     CFLAGS="-I${CT_HEADERS_DIR}"                                  \
    65     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                             \
    66     CT_DoExecLog ALL                                              \
    67     "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32/configure" \
    68         --prefix=${CT_SYSROOT_DIR}                                \
    69         --includedir=${CT_HEADERS_DIR}                            \
    70         --host=${CT_TARGET}
    71 
    72     CT_DoLog EXTRA "Building W32-API"
    73     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    74 
    75     CT_DoLog EXTRA "Installing W32-API"
    76     CT_DoExecLog ALL make install
    77 
    78     CT_DoLog EXTRA "Configuring MinGW Runtime"
    79 
    80     mkdir -p "${CT_BUILD_DIR}/build-mingwrt"
    81     cd "${CT_BUILD_DIR}/build-mingwrt"
    82 
    83     CFLAGS="-I${CT_HEADERS_DIR}"                                    \
    84     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                               \
    85     CT_DoExecLog ALL                                                \
    86     "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/configure" \
    87         --prefix=${CT_SYSROOT_DIR}/                                 \
    88         --includedir=${CT_HEADERS_DIR}                              \
    89         --host=${CT_TARGET}
    90 
    91     CT_DoLog EXTRA "Building MinGW Runtime"
    92     CT_DoExecLog ALL make ${PARALLELMFLAGS}
    93 
    94     CT_DoLog EXTRA "Installing MinGW Runtime"
    95     CT_DoExecLog ALL make install
    96 
    97     CT_EndStep
    98 }
    99 
   100 do_libc_finish() {
   101     # Remove the build-symlink now it is no longer needed.
   102     CT_DoExecLog ALL rm -f "${CT_SYSROOT_DIR}/mingw"
   103 
   104     CT_DoStep INFO "Installing MinGW Development libraries"
   105 
   106     CT_Pushd "${CT_SYSROOT_DIR}"
   107     if [ -n "${CT_MINGW_DIRECTX}" ]; then
   108         CT_DoLog EXTRA "Installing DirectX development package"
   109         CT_Extract nochdir "directx-devel"
   110     fi
   111     if [ -n "${CT_MINGW_OPENGL}" ]; then
   112         CT_DoLog EXTRA "Installing OpenGL development package"
   113         CT_Extract nochdir "opengl-devel"
   114     fi
   115     CT_Popd
   116 
   117     if [ -n "${CT_MINGW_PDCURSES}" ]; then
   118         CT_DoLog EXTRA "Building PDCurses development files"
   119         mkdir -p "${CT_BUILD_DIR}/build-pdcurses"
   120         cd "${CT_BUILD_DIR}/build-pdcurses"
   121 
   122         make -f ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/win32/mingwin32.mak libs \
   123             PDCURSES_SRCDIR=${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION} \
   124             CROSS_COMPILE=${CT_TARGET}-
   125 
   126         CT_DoLog EXTRA "Installing PDCurses development files"
   127         chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h
   128         cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \
   129            ${CT_HEADERS_DIR}/
   130         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a
   131         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a
   132     fi
   133 
   134     if [ -n "${CT_MINGW_GNURX}" ]; then
   135         CT_DoLog EXTRA "Configuring GnuRX development files"
   136 
   137         mkdir -p "${CT_BUILD_DIR}/build-gnurx"
   138         cd "${CT_BUILD_DIR}/build-gnurx"
   139 
   140         CFLAGS="${CT_CFLAGS_FOR_TARGET}"                                    \
   141         CT_DoExecLog ALL                                                    \
   142         "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}/configure"  \
   143             --build=${CT_BUILD}                                             \
   144             --host=${CT_TARGET}                                             \
   145             --prefix=${CT_SYSROOT_DIR}                                      \
   146             --includedir=${CT_HEADERS_DIR}                                  \
   147             --enable-shared                                                 \
   148             --enable-static
   149 
   150         CT_DoLog EXTRA "Building GnuRX development files"
   151         CT_DoExecLog ALL make ${PARALLELMFLAGS}
   152 
   153         CT_DoLog EXTRA "Installing GnuRX development files"
   154         CT_DoExecLog ALL make install-dev
   155     fi
   156 
   157     CT_EndStep
   158 }
   159