scripts/build/libc/mingw.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Aug 23 14:32:16 2010 +0200 (2010-08-23)
changeset 2100 f9fcfc002c8a
parent 2086 32f29d1e2db1
child 2154 250cdcc86441
permissions -rw-r--r--
debug/gdb: install dependable libs in a generic target static libs dir

For now, ncurses is the only dependable target library built for gdb.
But expat is coming, and there's no reason to install each library in
its own place.

So, install ncurses in a generic directory, where other dependable
libraries can be installed as well.

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