scripts/build/libc/mingw.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jan 22 23:20:18 2011 +0100 (2011-01-22)
changeset 2305 2ed26c646568
parent 2278 e86826b8621a
child 2354 c7fa1f177830
permissions -rw-r--r--
scripts: create the makeinfo wrapper before we set PATH

If we set PATH to the tools wrappers before we create the
makeinfo wrapper, then we may well wrap an existing wrapper
from a previous run.

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_start_files() {
    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() {
    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 CFG                                              \
    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 ${JOBSFLAGS}
    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 CFG                                                \
    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 ${JOBSFLAGS}
    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     CT_DoStep INFO "Installing MinGW Development libraries"
   102 
   103     CT_Pushd "${CT_SYSROOT_DIR}"
   104     if [ -n "${CT_MINGW_DIRECTX}" ]; then
   105         CT_DoLog EXTRA "Installing DirectX development package"
   106         CT_Extract nochdir "directx-devel"
   107     fi
   108     if [ -n "${CT_MINGW_OPENGL}" ]; then
   109         CT_DoLog EXTRA "Installing OpenGL development package"
   110         CT_Extract nochdir "opengl-devel"
   111     fi
   112     CT_Popd
   113 
   114     if [ -n "${CT_MINGW_PDCURSES}" ]; then
   115         CT_DoLog EXTRA "Building PDCurses development files"
   116         mkdir -p "${CT_BUILD_DIR}/build-pdcurses"
   117         cd "${CT_BUILD_DIR}/build-pdcurses"
   118 
   119         make -f ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/win32/mingwin32.mak libs \
   120             PDCURSES_SRCDIR=${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION} \
   121             CROSS_COMPILE=${CT_TARGET}-
   122 
   123         CT_DoLog EXTRA "Installing PDCurses development files"
   124         chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h
   125         cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \
   126            ${CT_HEADERS_DIR}/
   127         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a
   128         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a
   129     fi
   130 
   131     if [ -n "${CT_MINGW_GNURX}" ]; then
   132         CT_DoLog EXTRA "Configuring GnuRX development files"
   133 
   134         mkdir -p "${CT_BUILD_DIR}/build-gnurx"
   135         cd "${CT_BUILD_DIR}/build-gnurx"
   136 
   137         CFLAGS="${CT_CFLAGS_FOR_TARGET}"                                    \
   138         CT_DoExecLog CFG                                                    \
   139         "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}/configure"  \
   140             --build=${CT_BUILD}                                             \
   141             --host=${CT_TARGET}                                             \
   142             --prefix=${CT_SYSROOT_DIR}                                      \
   143             --includedir=${CT_HEADERS_DIR}                                  \
   144             --enable-shared                                                 \
   145             --enable-static
   146 
   147         CT_DoLog EXTRA "Building GnuRX development files"
   148         CT_DoExecLog ALL make ${JOBSFLAGS}
   149 
   150         CT_DoLog EXTRA "Installing GnuRX development files"
   151         CT_DoExecLog ALL make install-dev
   152     fi
   153 
   154     CT_EndStep
   155 }
   156