diff -r 46dd211a7fd5 -r fb71cad4b085 scripts/build/libc/mingw.sh --- a/scripts/build/libc/mingw.sh Mon Aug 01 00:16:12 2011 +0200 +++ b/scripts/build/libc/mingw.sh Thu Jan 10 00:27:13 2013 +0100 @@ -1,36 +1,16 @@ -do_libc_get() { - CT_GetFile "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" \ - http://downloads.sourceforge.net/sourceforge/mingw +# Copyright 2012 Yann Diorcet +# Licensed under the GPL v2. See COPYING in the root of this package - if [ -n "${CT_MINGW_DIRECTX}" ]; then - CT_GetFile "directx-devel" \ - http://www.libsdl.org/extras/win32/common - fi - if [ -n "${CT_MINGW_OPENGL}" ]; then - CT_GetFile "opengl-devel" \ - http://www.libsdl.org/extras/win32/common - fi - if [ -n "${CT_MINGW_PDCURSES}" ]; then - CT_GetFile "PDCurses-${CT_MINGW_PDCURSES_VERSION}" \ - http://downloads.sourceforge.net/sourceforge/pdcurses - fi - if [ -n "${CT_MINGW_GNURX}" ]; then - CT_GetFile "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src" \ - http://downloads.sourceforge.net/sourceforge/mingw - fi +do_libc_get() { + CT_GetFile "mingw-w64-v${CT_WINAPI_VERSION}" \ + http://downloads.sourceforge.net/sourceforge/mingw-w64 } do_libc_extract() { - CT_Extract "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" - - if [ -n "${CT_MINGW_PDCURSES}" ]; then - CT_Extract "PDCurses-${CT_MINGW_PDCURSES_VERSION}" - CT_Patch "PDCurses" "${CT_MINGW_PDCURSES_VERSION}" - fi - if [ -n "${CT_MINGW_GNURX}" ]; then - CT_Extract "mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src" - CT_Patch "mingw-libgnurx" "${CT_MINGW_GNURX_VERSION}-src" - fi + CT_Extract "mingw-w64-v${CT_WINAPI_VERSION}" + CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/" + CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}" + CT_Popd } do_libc_check_config() { @@ -38,119 +18,66 @@ } do_libc_start_files() { + local -a sdk_opts + CT_DoStep INFO "Installing C library headers" - CT_DoLog EXTRA "Installing MinGW Runtime headers" - mkdir -p "${CT_HEADERS_DIR}" - cp -r ${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32-src/include/* \ - ${CT_HEADERS_DIR} + case "${CT_MINGW_DIRECTX}:${CT_MINGW_DDK}" in + y:y) sdk_opts+=( "--enable-sdk=all" );; + y:) sdk_opts+=( "--enable-sdk=directx" );; + :y) sdk_opts+=( "--enable-sdk=ddk" );; + :) ;; + esac + + CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-headers" + + CT_DoLog EXTRA "Configuring Headers" + + CT_DoExecLog CFG \ + "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-headers/configure" \ + --build=${CT_BUILD} \ + --host=${CT_TARGET} \ + --prefix=/usr \ + "${sdk_opts[@]}" + + CT_DoLog EXTRA "Compile Headers" + CT_DoExecLog ALL make + + CT_DoLog EXTRA "Installing Headers" + CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR} + + CT_Popd # It seems mingw is strangely set up to look into /mingw instead of # /usr (notably when looking for the headers). This symlink is # here to workaround this, and seems to be here to last... :-/ - CT_DoExecLog ALL ln -sv "usr" "${CT_SYSROOT_DIR}/mingw" + CT_DoExecLog ALL ln -sv "usr/${CT_TARGET}" "${CT_SYSROOT_DIR}/mingw" CT_EndStep } do_libc() { - CT_DoStep INFO "Building MinGW files" + CT_DoStep INFO "Building mingw-w64 files" - CT_DoLog EXTRA "Configuring W32-API" + CT_DoLog EXTRA "Configuring mingw-w64-crt" - mkdir -p "${CT_BUILD_DIR}/build-w32api" - cd "${CT_BUILD_DIR}/build-w32api" + CT_mkdir_pushd "${CT_BUILD_DIR}/build-mingw-w64-crt" - CT_DoExecLog CFG \ - CFLAGS="-I${CT_HEADERS_DIR}" \ - LDFLAGS="-L${CT_SYSROOT_DIR}/lib" \ - "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32-src/configure" \ - --prefix=${CT_SYSROOT_DIR} \ - --includedir=${CT_HEADERS_DIR} \ - --host=${CT_TARGET} + CT_DoExecLog CFG \ + "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/mingw-w64-crt/configure" \ + --prefix=/usr \ + --build=${CT_BUILD} \ + --host=${CT_TARGET} \ - CT_DoLog EXTRA "Building W32-API" + CT_DoLog EXTRA "Building mingw-w64-crt" CT_DoExecLog ALL make ${JOBSFLAGS} - CT_DoLog EXTRA "Installing W32-API" - CT_DoExecLog ALL make install - - CT_DoLog EXTRA "Configuring MinGW Runtime" - - mkdir -p "${CT_BUILD_DIR}/build-mingwrt" - cd "${CT_BUILD_DIR}/build-mingwrt" - - CT_DoExecLog CFG \ - CFLAGS="-I${CT_HEADERS_DIR}" \ - LDFLAGS="-L${CT_SYSROOT_DIR}/lib" \ - "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32-src/configure" \ - --prefix=${CT_SYSROOT_DIR}/ \ - --includedir=${CT_HEADERS_DIR} \ - --host=${CT_TARGET} - - CT_DoLog EXTRA "Building MinGW Runtime" - CT_DoExecLog ALL make ${JOBSFLAGS} - - CT_DoLog EXTRA "Installing MinGW Runtime" - CT_DoExecLog ALL make install + CT_DoLog EXTRA "Installing mingw-w64-crt" + CT_DoExecLog ALL make install DESTDIR=${CT_SYSROOT_DIR} CT_EndStep } do_libc_finish() { - CT_DoStep INFO "Installing MinGW Development libraries" - - CT_Pushd "${CT_SYSROOT_DIR}" - if [ -n "${CT_MINGW_DIRECTX}" ]; then - CT_DoLog EXTRA "Installing DirectX development package" - CT_Extract nochdir "directx-devel" - fi - if [ -n "${CT_MINGW_OPENGL}" ]; then - CT_DoLog EXTRA "Installing OpenGL development package" - CT_Extract nochdir "opengl-devel" - fi - CT_Popd - - if [ -n "${CT_MINGW_PDCURSES}" ]; then - CT_DoLog EXTRA "Building PDCurses development files" - mkdir -p "${CT_BUILD_DIR}/build-pdcurses" - cd "${CT_BUILD_DIR}/build-pdcurses" - - make -f ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/win32/mingwin32.mak libs \ - PDCURSES_SRCDIR=${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION} \ - CROSS_COMPILE=${CT_TARGET}- - - CT_DoLog EXTRA "Installing PDCurses development files" - chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h - cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \ - ${CT_HEADERS_DIR}/ - cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a - cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a - fi - - if [ -n "${CT_MINGW_GNURX}" ]; then - CT_DoLog EXTRA "Configuring GnuRX development files" - - mkdir -p "${CT_BUILD_DIR}/build-gnurx" - cd "${CT_BUILD_DIR}/build-gnurx" - - CT_DoExecLog CFG \ - CFLAGS="${CT_CFLAGS_FOR_TARGET}" \ - "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}-src/configure" \ - --build=${CT_BUILD} \ - --host=${CT_TARGET} \ - --prefix=${CT_SYSROOT_DIR} \ - --includedir=${CT_HEADERS_DIR} \ - --enable-shared \ - --enable-static - - CT_DoLog EXTRA "Building GnuRX development files" - CT_DoExecLog ALL make ${JOBSFLAGS} - - CT_DoLog EXTRA "Installing GnuRX development files" - CT_DoExecLog ALL make install-dev - fi - - CT_EndStep + : } -