scripts/build/libc/mingw.sh
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
parent 2017 f637b6c2162b
child 2085 198c99380191
permissions -rw-r--r--
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

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