summaryrefslogtreecommitdiff
path: root/scripts/build/libc/mingw.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/libc/mingw.sh')
-rw-r--r--scripts/build/libc/mingw.sh173
1 files changed, 50 insertions, 123 deletions
diff --git a/scripts/build/libc/mingw.sh b/scripts/build/libc/mingw.sh
index fcd7545..d8cbf71 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
+ :
}
-