scripts/build/libc/mingw.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Feb 13 21:47:25 2012 +0100 (2012-02-13)
changeset 2883 cea814c9932a
parent 2354 c7fa1f177830
child 3112 6cb56b3f2d34
permissions -rw-r--r--
libc/glibc: do not consume parameters when parsing them

Currently, there are two constructs used to parse arguments in
glibc backends, one that consumes args as they are parsed, and
one that does not.

Always use the construct that does not eat args as they are parsed.

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}-src"
    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-src/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     CT_DoExecLog CFG                                                  \
    65     CFLAGS="-I${CT_HEADERS_DIR}"                                      \
    66     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                                 \
    67     "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32-src/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     CT_DoExecLog CFG                                                    \
    84     CFLAGS="-I${CT_HEADERS_DIR}"                                        \
    85     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                                   \
    86     "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32-src/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         CT_DoExecLog CFG                                                        \
   138         CFLAGS="${CT_CFLAGS_FOR_TARGET}"                                        \
   139         "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src/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