1.1 --- a/scripts/build/libc/mingw.sh Mon Aug 01 00:16:12 2011 +0200
1.2 +++ b/scripts/build/libc/mingw.sh Thu Jan 10 19:06:46 2013 +0100
1.3 @@ -1,36 +1,16 @@
1.4 -do_libc_get() {
1.5 - CT_GetFile "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" \
1.6 - http://downloads.sourceforge.net/sourceforge/mingw
1.7 +# Copyright 2012 Yann Diorcet
1.8 +# Licensed under the GPL v2. See COPYING in the root of this package
1.9
1.10 - if [ -n "${CT_MINGW_DIRECTX}" ]; then
1.11 - CT_GetFile "directx-devel" \
1.12 - http://www.libsdl.org/extras/win32/common
1.13 - fi
1.14 - if [ -n "${CT_MINGW_OPENGL}" ]; then
1.15 - CT_GetFile "opengl-devel" \
1.16 - http://www.libsdl.org/extras/win32/common
1.17 - fi
1.18 - if [ -n "${CT_MINGW_PDCURSES}" ]; then
1.19 - CT_GetFile "PDCurses-${CT_MINGW_PDCURSES_VERSION}" \
1.20 - http://downloads.sourceforge.net/sourceforge/pdcurses
1.21 - fi
1.22 - if [ -n "${CT_MINGW_GNURX}" ]; then
1.23 - CT_GetFile "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src" \
1.24 - http://downloads.sourceforge.net/sourceforge/mingw
1.25 - fi
1.26 +do_libc_get() {
1.27 + CT_GetFile "mingw-w64-v${CT_WINAPI_VERSION}" \
1.28 + http://downloads.sourceforge.net/sourceforge/mingw-w64
1.29 }
1.30
1.31 do_libc_extract() {
1.32 - CT_Extract "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src"
1.33 -
1.34 - if [ -n "${CT_MINGW_PDCURSES}" ]; then
1.35 - CT_Extract "PDCurses-${CT_MINGW_PDCURSES_VERSION}"
1.36 - CT_Patch "PDCurses" "${CT_MINGW_PDCURSES_VERSION}"
1.37 - fi
1.38 - if [ -n "${CT_MINGW_GNURX}" ]; then
1.39 - CT_Extract "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src"
1.40 - CT_Patch "mingw-libgnurx" "${CT_MINGW_GNURX_VERSION}-src"
1.41 - fi
1.42 + CT_Extract "mingw-w64-v${CT_WINAPI_VERSION}"
1.43 + CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/"
1.44 + CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}"
1.45 + CT_Popd
1.46 }
1.47
1.48 do_libc_check_config() {
1.49 @@ -38,119 +18,66 @@
1.50 }
1.51
1.52 do_libc_start_files() {
1.53 + local -a sdk_opts
1.54 +
1.55 CT_DoStep INFO "Installing C library headers"
1.56
1.57 - CT_DoLog EXTRA "Installing MinGW Runtime headers"
1.58 - mkdir -p "${CT_HEADERS_DIR}"
1.59 - cp -r ${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32-src/include/* \
1.60 - ${CT_HEADERS_DIR}
1.61 + case "${CT_MINGW_DIRECTX}:${CT_MINGW_DDK}" in
1.62 + y:y) sdk_opts+=( "--enable-sdk=all" );;
1.63 + y:) sdk_opts+=( "--enable-sdk=directx" );;
1.64 + :y) sdk_opts+=( "--enable-sdk=ddk" );;
1.65 + :) ;;
1.66 + esac
1.67 +
1.68 + CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-headers"
1.69 +
1.70 + CT_DoLog EXTRA "Configuring Headers"
1.71 +
1.72 + CT_DoExecLog CFG \
1.73 + "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-headers/configure" \
1.74 + --build=${CT_BUILD} \
1.75 + --host=${CT_TARGET} \
1.76 + --prefix=/usr \
1.77 + "${sdk_opts[@]}"
1.78 +
1.79 + CT_DoLog EXTRA "Compile Headers"
1.80 + CT_DoExecLog ALL make
1.81 +
1.82 + CT_DoLog EXTRA "Installing Headers"
1.83 + CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR}
1.84 +
1.85 + CT_Popd
1.86
1.87 # It seems mingw is strangely set up to look into /mingw instead of
1.88 # /usr (notably when looking for the headers). This symlink is
1.89 # here to workaround this, and seems to be here to last... :-/
1.90 - CT_DoExecLog ALL ln -sv "usr" "${CT_SYSROOT_DIR}/mingw"
1.91 + CT_DoExecLog ALL ln -sv "usr/${CT_TARGET}" "${CT_SYSROOT_DIR}/mingw"
1.92
1.93 CT_EndStep
1.94 }
1.95
1.96 do_libc() {
1.97 - CT_DoStep INFO "Building MinGW files"
1.98 + CT_DoStep INFO "Building mingw-w64 files"
1.99
1.100 - CT_DoLog EXTRA "Configuring W32-API"
1.101 + CT_DoLog EXTRA "Configuring mingw-w64-crt"
1.102
1.103 - mkdir -p "${CT_BUILD_DIR}/build-w32api"
1.104 - cd "${CT_BUILD_DIR}/build-w32api"
1.105 + CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-crt"
1.106
1.107 - CT_DoExecLog CFG \
1.108 - CFLAGS="-I${CT_HEADERS_DIR}" \
1.109 - LDFLAGS="-L${CT_SYSROOT_DIR}/lib" \
1.110 - "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32-src/configure" \
1.111 - --prefix=${CT_SYSROOT_DIR} \
1.112 - --includedir=${CT_HEADERS_DIR} \
1.113 - --host=${CT_TARGET}
1.114 + CT_DoExecLog CFG \
1.115 + "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-crt/configure" \
1.116 + --prefix=/usr \
1.117 + --build=${CT_BUILD} \
1.118 + --host=${CT_TARGET} \
1.119
1.120 - CT_DoLog EXTRA "Building W32-API"
1.121 + CT_DoLog EXTRA "Building mingw-w64-crt"
1.122 CT_DoExecLog ALL make ${JOBSFLAGS}
1.123
1.124 - CT_DoLog EXTRA "Installing W32-API"
1.125 - CT_DoExecLog ALL make install
1.126 -
1.127 - CT_DoLog EXTRA "Configuring MinGW Runtime"
1.128 -
1.129 - mkdir -p "${CT_BUILD_DIR}/build-mingwrt"
1.130 - cd "${CT_BUILD_DIR}/build-mingwrt"
1.131 -
1.132 - CT_DoExecLog CFG \
1.133 - CFLAGS="-I${CT_HEADERS_DIR}" \
1.134 - LDFLAGS="-L${CT_SYSROOT_DIR}/lib" \
1.135 - "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32-src/configure" \
1.136 - --prefix=${CT_SYSROOT_DIR}/ \
1.137 - --includedir=${CT_HEADERS_DIR} \
1.138 - --host=${CT_TARGET}
1.139 -
1.140 - CT_DoLog EXTRA "Building MinGW Runtime"
1.141 - CT_DoExecLog ALL make ${JOBSFLAGS}
1.142 -
1.143 - CT_DoLog EXTRA "Installing MinGW Runtime"
1.144 - CT_DoExecLog ALL make install
1.145 + CT_DoLog EXTRA "Installing mingw-w64-crt"
1.146 + CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR}
1.147
1.148 CT_EndStep
1.149 }
1.150
1.151 do_libc_finish() {
1.152 - CT_DoStep INFO "Installing MinGW Development libraries"
1.153 -
1.154 - CT_Pushd "${CT_SYSROOT_DIR}"
1.155 - if [ -n "${CT_MINGW_DIRECTX}" ]; then
1.156 - CT_DoLog EXTRA "Installing DirectX development package"
1.157 - CT_Extract nochdir "directx-devel"
1.158 - fi
1.159 - if [ -n "${CT_MINGW_OPENGL}" ]; then
1.160 - CT_DoLog EXTRA "Installing OpenGL development package"
1.161 - CT_Extract nochdir "opengl-devel"
1.162 - fi
1.163 - CT_Popd
1.164 -
1.165 - if [ -n "${CT_MINGW_PDCURSES}" ]; then
1.166 - CT_DoLog EXTRA "Building PDCurses development files"
1.167 - mkdir -p "${CT_BUILD_DIR}/build-pdcurses"
1.168 - cd "${CT_BUILD_DIR}/build-pdcurses"
1.169 -
1.170 - make -f ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/win32/mingwin32.mak libs \
1.171 - PDCURSES_SRCDIR=${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION} \
1.172 - CROSS_COMPILE=${CT_TARGET}-
1.173 -
1.174 - CT_DoLog EXTRA "Installing PDCurses development files"
1.175 - chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h
1.176 - cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \
1.177 - ${CT_HEADERS_DIR}/
1.178 - cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a
1.179 - cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a
1.180 - fi
1.181 -
1.182 - if [ -n "${CT_MINGW_GNURX}" ]; then
1.183 - CT_DoLog EXTRA "Configuring GnuRX development files"
1.184 -
1.185 - mkdir -p "${CT_BUILD_DIR}/build-gnurx"
1.186 - cd "${CT_BUILD_DIR}/build-gnurx"
1.187 -
1.188 - CT_DoExecLog CFG \
1.189 - CFLAGS="${CT_CFLAGS_FOR_TARGET}" \
1.190 - "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src/configure" \
1.191 - --build=${CT_BUILD} \
1.192 - --host=${CT_TARGET} \
1.193 - --prefix=${CT_SYSROOT_DIR} \
1.194 - --includedir=${CT_HEADERS_DIR} \
1.195 - --enable-shared \
1.196 - --enable-static
1.197 -
1.198 - CT_DoLog EXTRA "Building GnuRX development files"
1.199 - CT_DoExecLog ALL make ${JOBSFLAGS}
1.200 -
1.201 - CT_DoLog EXTRA "Installing GnuRX development files"
1.202 - CT_DoExecLog ALL make install-dev
1.203 - fi
1.204 -
1.205 - CT_EndStep
1.206 + :
1.207 }
1.208 -