diff options
author | Yann Diorcet <diorcet.yann@gmail.com> | 2012-11-14 14:05:49 +0100 |
---|---|---|
committer | Yann Diorcet <diorcet.yann@gmail.com> | 2012-11-14 14:05:49 +0100 |
commit | 3d01e9f2752cd97285d7effdf548f1ea7ec8feb8 (patch) | |
tree | 6d964e1c73e32b55c2a23f53b7088606728711ec /scripts/build/libc | |
parent | 79a9f857e2fe6df6be889963dd504b84b1a3ea1a (diff) | |
download | crosstool-ng-3d01e9f2752cd97285d7effdf548f1ea7ec8feb8.tar.gz crosstool-ng-3d01e9f2752cd97285d7effdf548f1ea7ec8feb8.tar.bz2 crosstool-ng-3d01e9f2752cd97285d7effdf548f1ea7ec8feb8.zip |
libc/mingw: replace mingw32 with generic mingw
Replace the 32-bit-only mingw32 with mingw-w64 that is capable
of building toolchains for both 32-bit and 64-bit Windows.
kernel/mingw: replace mingw32 with generic Windows
kernel/windows: New windows kernel supporting 32 and 64 bit arch
libc/mingw: Remove old options
patches: Remove old mingw libc options' patches
Signed-off-by: "Yann Diorcet" <diorcet.yann@gmail.com>
[yann.morin.1998@free.fr: array var in libc/mingw.sh, typos]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <b045ac08fc9eac2e5ee3.1352898499@blackmint>
Patchwork-Id: 198901
Diffstat (limited to 'scripts/build/libc')
-rw-r--r-- | scripts/build/libc/mingw.sh | 173 |
1 files changed, 50 insertions, 123 deletions
diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh index fcd7545f..d8cbf719 100644 --- a/scripts/build/libc/mingw.sh +++ b/scripts/build/libc/mingw.sh @@ -1,36 +1,16 @@ -do_libc_get() { - CT_GetFile "mingwrt-${CT_MINGWRT_VERSION}-mingw32-src" \ - http://downloads.sourceforge.net/sourceforge/mingw - - 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 +# Copyright 2012 Yann Diorcet +# Licensed under the GPL v2. See COPYING in the root of this package + +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_check_config() { } 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 + : } - |