From 3d01e9f2752cd97285d7effdf548f1ea7ec8feb8 Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 14 Nov 2012 14:05:49 +0100 Subject: 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" [yann.morin.1998@free.fr: array var in libc/mingw.sh, typos] Signed-off-by: "Yann E. MORIN" Message-Id: Patchwork-Id: 198901 diff --git a/config/kernel.in b/config/kernel.in index 7e8cce8..64b69c6 100644 --- a/config/kernel.in +++ b/config/kernel.in @@ -7,7 +7,7 @@ menu "Operating System" config BARE_METAL bool -config MINGW32 +config WINDOWS bool # Each target OS (aka kernel) that support shared libraries can select diff --git a/config/kernel/mingw32.in b/config/kernel/mingw32.in deleted file mode 100644 index f121e98..0000000 --- a/config/kernel/mingw32.in +++ /dev/null @@ -1,33 +0,0 @@ -# mingw32 config options - -## depends on EXPERIMENTAL && ( ARCH_x86 && ARCH_32 ) -## -## select MINGW32 -## -## help Build a toolchain targeting systems running Windows as host - -choice - bool - prompt "Windows api version" - -# Don't remove next line -# CT_INSERT_VERSION_BELOW -config W32API_V_3_14 - bool - prompt "3.14" - -config W32API_V_select - bool - prompt "Other version" - -endchoice - -config W32API_VERSION - string - prompt "W32 api version" if W32API_V_select -# Don't remove next line -# CT_INSERT_VERSION_STRING_BELOW - default "3.14" if W32API_V_3_14 - help - Enter the version number of the windows api files to use - diff --git a/config/kernel/windows.in b/config/kernel/windows.in new file mode 100644 index 0000000..209f0cf --- /dev/null +++ b/config/kernel/windows.in @@ -0,0 +1,7 @@ +# windows config options + +## depends on EXPERIMENTAL && ARCH_x86 +## +## select WINDOWS +## +## help Build a toolchain targeting systems running Windows as host diff --git a/config/libc/eglibc.in b/config/libc/eglibc.in index d44c236..586b234 100644 --- a/config/libc/eglibc.in +++ b/config/libc/eglibc.in @@ -1,6 +1,6 @@ # eglibc options -## depends on ! MINGW32 && ! BARE_METAL && ARCH_USE_MMU +## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU ## ## select LIBC_SUPPORT_NPTL ## select LIBC_SUPPORT_LINUXTHREADS diff --git a/config/libc/glibc.in b/config/libc/glibc.in index 0cf6287..e65c22b 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -1,6 +1,6 @@ # glibc options -## depends on ! MINGW32 && ! BARE_METAL && ARCH_USE_MMU +## depends on ! WINDOWS && ! BARE_METAL && ARCH_USE_MMU ## ## select LIBC_SUPPORT_NPTL ## diff --git a/config/libc/mingw.in b/config/libc/mingw.in index c2b10e4..fddf1ed 100644 --- a/config/libc/mingw.in +++ b/config/libc/mingw.in @@ -1,6 +1,6 @@ # mingw options -## depends on MINGW32 +## depends on WINDOWS ## ## select LIBC_SUPPORT_WIN32THREADS ## @@ -8,26 +8,33 @@ choice bool - prompt "Mingw runtime version" + prompt "Windows API version" # Don't remove next line # CT_INSERT_VERSION_BELOW -config MINGWRT_V_3_18 +config WINAPI_V_2_0_7 bool - prompt "3.18" + prompt "2.0.7" -config MINGWRT_V_select +config WINAPI_V_select bool prompt "Other version" endchoice -config MINGWRT_VERSION +config WINAPI_VERSION string - prompt "Mingw runtime version" if MINGWRT_V_select + prompt "Windows API version" if WINAPI_V_select # Don't remove next line # CT_INSERT_VERSION_STRING_BELOW - default "3.18" if MINGWRT_V_3_18 + default "2.0.7" if WINAPI_V_2_0_7 help - Enter the version number of the mingw runtime files to use + Enter the version number of the Windows API files to use +config MINGW_DIRECTX + bool + prompt "Include DirectX development files" + +config MINGW_DDK + bool + prompt "Include DDK development files" diff --git a/config/libc/mingw.in.2 b/config/libc/mingw.in.2 deleted file mode 100644 index e77c21b..0000000 --- a/config/libc/mingw.in.2 +++ /dev/null @@ -1,72 +0,0 @@ -# Part-2 of mingw C library options: development libraries - -config MINGW_DIRECTX - bool - prompt "Include DirectX development files" - -config MINGW_OPENGL - bool - prompt "Include OpenGL development files" - -config MINGW_PDCURSES - bool - prompt "Include PDCurses (NCurses library) development files" - -choice - bool - prompt "PDCurses library version" - depends on MINGW_PDCURSES - -config MINGW_PDCURSES_V_3_4 - bool - prompt "3.4" - -# CT_INSERT_VERSION_ABOVE -# Don't remove above line! - -config MINGW_PDCURSES_V_select - bool - prompt "Other version" - -endchoice - -config MINGW_PDCURSES_VERSION - string - prompt "PDCurses library version" if MINGW_PDCURSES_V_select - default "3.4" if MINGW_PDCURSES_V_3_4 -# CT_INSERT_VERSION_STRING_ABOVE -# Don't remove above line! - help - Enter the version number of the PDCurses library to use - -config MINGW_GNURX - bool - prompt "Include GnuRX (regex library) development files" - -choice - bool - prompt "GnuRX library version" - depends on MINGW_GNURX - -config MINGW_GNURX_V_2_5_1 - bool - prompt "2.5.1" - -# CT_INSERT_VERSION_ABOVE -# Don't remove above line! - -config MINGW_GNURX_V_select - bool - prompt "Other version" - -endchoice - -config MINGW_GNURX_VERSION - string - prompt "GnuRX library version" if MINGW_GNURX_V_select - default "2.5.1" if MINGW_GNURX_V_2_5_1 -# CT_INSERT_VERSION_STRING_ABOVE -# Don't remove above line! - help - Enter the version number of the Regex library to use - diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in index fc99e27..dec99d1 100644 --- a/config/libc/uClibc.in +++ b/config/libc/uClibc.in @@ -1,6 +1,6 @@ # uClibc options -## depends on ! MINGW32 && ! BARE_METAL +## depends on ! WINDOWS && ! BARE_METAL ## ## select LIBC_SUPPORT_LINUXTHREADS ## select LIBC_SUPPORT_THREADS_NONE diff --git a/patches/PDCurses/3.4/mingw32_cross_compile.patch b/patches/PDCurses/3.4/mingw32_cross_compile.patch deleted file mode 100644 index 060ff9a..0000000 --- a/patches/PDCurses/3.4/mingw32_cross_compile.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- PDCurses-3.4.orig/win32/mingwin32.mak 2009-11-02 13:50:11.000000000 +0100 -+++ PDCurses-3.4/win32/mingwin32.mak 2009-11-02 13:53:43.000000000 +0100 -@@ -18,7 +18,7 @@ - - PDCURSES_WIN_H = $(osdir)/pdcwin.h - --CC = gcc -+CC = $(CROSS_COMPILE)gcc - - ifeq ($(DEBUG),Y) - CFLAGS = -g -Wall -DPDCDEBUG -@@ -30,8 +30,8 @@ - - CFLAGS += -I$(PDCURSES_SRCDIR) - --BASEDEF = $(PDCURSES_SRCDIR)\exp-base.def --WIDEDEF = $(PDCURSES_SRCDIR)\exp-wide.def -+BASEDEF = $(PDCURSES_SRCDIR)/exp-base.def -+WIDEDEF = $(PDCURSES_SRCDIR)/exp-wide.def - - DEFDEPS = $(BASEDEF) - -@@ -46,17 +46,17 @@ - - DEFFILE = pdcurses.def - --LINK = gcc -+LINK = $(CROSS_COMPILE)gcc - - ifeq ($(DLL),Y) - CFLAGS += -DPDC_DLL_BUILD -- LIBEXE = gcc $(DEFFILE) -+ LIBEXE = $(CROSS_COMPILE)gcc $(DEFFILE) - LIBFLAGS = -Wl,--out-implib,pdcurses.a -shared -o - LIBCURSES = pdcurses.dll - LIBDEPS = $(LIBOBJS) $(PDCOBJS) $(DEFFILE) - CLEAN = $(LIBCURSES) *.a $(DEFFILE) - else -- LIBEXE = ar -+ LIBEXE = $(CROSS_COMPILE)ar - LIBFLAGS = rcv - LIBCURSES = pdcurses.a - LIBDEPS = $(LIBOBJS) $(PDCOBJS) -@@ -70,24 +70,24 @@ - libs: $(LIBCURSES) - - clean: -- -del *.o -- -del *.exe -- -del $(CLEAN) -+ -rm *.o -+ -rm *.exe -+ -rm $(CLEAN) - - demos: $(DEMOS) -- strip *.exe -+ $(CROSS_COMPILE)strip *.exe - - $(DEFFILE): $(DEFDEPS) - echo LIBRARY pdcurses > $@ - echo EXPORTS >> $@ -- type $(BASEDEF) >> $@ -+ cat $(BASEDEF) >> $@ - ifeq ($(WIDE),Y) -- type $(WIDEDEF) >> $@ -+ cat $(WIDEDEF) >> $@ - endif - - $(LIBCURSES) : $(LIBDEPS) - $(LIBEXE) $(LIBFLAGS) $@ $? -- -copy pdcurses.a panel.a -+ -cp pdcurses.a panel.a - - $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS) - $(PDCOBJS) : $(PDCURSES_WIN_H) ---- PDCurses-3.4.orig/curses.h 2009-11-03 14:12:18.000000000 +0100 -+++ PDCurses-3.4./curses.h 2009-11-03 14:14:09.000000000 +0100 -@@ -82,7 +82,9 @@ - * - */ - -+#ifndef __bool_true_false_are_defined - typedef unsigned char bool; /* PDCurses Boolean type */ -+#endif - - #ifdef CHTYPE_LONG - # if _LP64 diff --git a/patches/mingw-libgnurx/2.5.1/build-static-library.patch b/patches/mingw-libgnurx/2.5.1/build-static-library.patch deleted file mode 100644 index ee7ab16..0000000 --- a/patches/mingw-libgnurx/2.5.1/build-static-library.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- mingw-libgnurx-2.5.1.orig/configure 2009-11-03 08:19:15.000000000 +0100 -+++ mingw-libgnurx-2.5.1/configure 2009-11-03 08:31:37.000000000 +0100 -@@ -273,7 +273,7 @@ - PACKAGE_STRING='MinGW libgnurx 2.5.1' - PACKAGE_BUGREPORT='https://sourceforge.net/tracker/?group_id=2435&atid=102435' - --ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CC_QUALIFIED DLLVERSION ZIPCMD ZIPEXT MSVCLIB ac_ct_MSVCLIB GNURX_LIB install_dev LIBOBJS LTLIBOBJS' -+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CC_QUALIFIED AR DLLVERSION ZIPCMD ZIPEXT MSVCLIB ac_ct_MSVCLIB GNURX_LIB install_dev LIBOBJS LTLIBOBJS' - ac_subst_files='' - - # Initialize some variables set by options. -@@ -2190,21 +2190,54 @@ - - fi - rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu - -- ac_ext=c -+ -+for ac_prog in ar; do -+set dummy ${ac_tool_prefix}$ac_prog; ac_word=$2 -+echo "$as_me:$LINENO: checking for $ac_word" >&5 -+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -+if test "${ac_cv_prog_AR+set}" = set; then -+ echo $ECHO_N "(cached) $ECHO_C" >&6 -+else -+ if test -n "$AR"; then -+ ac_cv_prog_AR="$AR" # Let the user override the test. -+else -+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -+for as_dir in $PATH -+do -+ IFS=$as_save_IFS -+ test -z "$as_dir" && as_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog" -+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -+ break 2 -+ fi -+done -+done -+ -+ test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" -+fi -+fi -+AR=$ac_cv_prog_AR -+if test -n "$AR"; then -+ echo "$as_me:$LINENO: result: $AR" >&5 -+echo "${ECHO_T}$AR" >&6 -+else -+ echo "$as_me:$LINENO: result: no" >&5 -+echo "${ECHO_T}no" >&6 -+fi -+done -+ -+ac_ext=c - ac_cpp='$CPP $CPPFLAGS' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - -- popCFLAGS=$CFLAGS -- echo 'int main(void){return 0;}' > conftest.$ac_ext -- echo "$as_me:$LINENO: checking whether $CC accepts the -mthreads option" >&5 -+popCFLAGS=$CFLAGS -+echo 'int main(void){return 0;}' > conftest.$ac_ext -+echo "$as_me:$LINENO: checking whether $CC accepts the -mthreads option" >&5 - echo $ECHO_N "checking whether $CC accepts the -mthreads option... $ECHO_C" >&6 - CFLAGS="$popCFLAGS $CC_QUALIFIED -mthreads" - if (eval $ac_compile) 2>&5; then -@@ -3038,6 +3069,7 @@ - s,@EXEEXT@,$EXEEXT,;t t - s,@OBJEXT@,$OBJEXT,;t t - s,@CC_QUALIFIED@,$CC_QUALIFIED,;t t -+s,@AR@,$AR,;t t - s,@DLLVERSION@,$DLLVERSION,;t t - s,@ZIPCMD@,$ZIPCMD,;t t - s,@ZIPEXT@,$ZIPEXT,;t t ---- mingw-libgnurx-2.5.1.orig/Makefile.in 2009-11-03 08:17:49.000000000 +0100 -+++ mingw-libgnurx-2.5.1/Makefile.in 2009-11-03 08:57:37.000000000 +0100 -@@ -39,6 +39,7 @@ - mandir = @mandir@ - - CC = @CC_QUALIFIED@ -+AR = @AR@ - CFLAGS = @CFLAGS@ -I ${srcdir} - LDFLAGS = @LDFLAGS@ - -@@ -67,8 +68,8 @@ - libgnurx-$(DLLVERSION).dll libgnurx.dll.a: $(OBJECTS) - $(CC) $(CFLAGS) -shared -o libgnurx-$(DLLVERSION).dll $(LDFLAGS) $(OBJECTS) - --libregex.a: libgnurx.dll.a -- cp -p libgnurx.dll.a $@ -+libregex.a: $(OBJECTS) -+ $(AR) cru $@ $(OBJECTS) - - gnurx.lib: libgnurx-$(DLLVERSION).dll diff --git a/samples/i686-pc-mingw32/crosstool.config b/samples/i686-pc-mingw32/crosstool.config deleted file mode 100644 index 5d3cb1a..0000000 --- a/samples/i686-pc-mingw32/crosstool.config +++ /dev/null @@ -1,20 +0,0 @@ -CT_EXPERIMENTAL=y -CT_LOCAL_TARBALLS_DIR="${HOME}/src" -CT_SAVE_TARBALLS=y -CT_LOG_EXTRA=y -CT_ARCH_ARCH="i686" -CT_ARCH_x86=y -CT_TARGET_VENDOR="pc" -CT_KERNEL_mingw32=y -CT_BINUTILS_V_2_21_1a=y -CT_BINUTILS_PLUGINS=y -CT_CC_V_4_4_5=y -CT_CC_LANG_CXX=y -CT_MINGW_DIRECTX=y -CT_MINGW_OPENGL=y -CT_MINGW_PDCURSES=y -CT_MINGW_GNURX=y -CT_GMP_V_4_3_2=y -CT_MPFR_V_2_4_1=y -CT_PPL_V_0_10_2=y -CT_CLOOG_V_0_15_10=y diff --git a/samples/i686-pc-mingw32/reported.by b/samples/i686-pc-mingw32/reported.by deleted file mode 100644 index 72caf08..0000000 --- a/samples/i686-pc-mingw32/reported.by +++ /dev/null @@ -1,3 +0,0 @@ -reporter_name="Bart vdr. Meulen " -reporter_url="" -reporter_comment="Config to build cross-compiler with mingw as kernel type" diff --git a/samples/i686-unknown-mingw32/crosstool.config b/samples/i686-unknown-mingw32/crosstool.config new file mode 100644 index 0000000..f6f8dd2 --- /dev/null +++ b/samples/i686-unknown-mingw32/crosstool.config @@ -0,0 +1,18 @@ +CT_EXPERIMENTAL=y +CT_LOCAL_TARBALLS_DIR="${HOME}/src" +CT_SAVE_TARBALLS=y +CT_LOG_EXTRA=y +CT_ARCH_ARCH="i686" +CT_ARCH_32=y +CT_ARCH_x86=y +CT_KERNEL_windows=y +CT_BINUTILS_V_2_21_1a=y +CT_BINUTILS_PLUGINS=y +CT_CC_V_4_5_2=y +CT_CC_LANG_CXX=y +CT_MINGW_DIRECTX=y +CT_MINGW_DDK=y +CT_GMP_V_4_3_2=y +CT_MPFR_V_2_4_2=y +CT_PPL_V_0_10_2=y +CT_CLOOG_V_0_15_10=y diff --git a/samples/i686-unknown-mingw32/reported.by b/samples/i686-unknown-mingw32/reported.by new file mode 100644 index 0000000..3694d43 --- /dev/null +++ b/samples/i686-unknown-mingw32/reported.by @@ -0,0 +1,4 @@ +reporter_name="Yann Diorcet " +reporter_url="" +reporter_comment="Config to build cross-compiler with mingw as kernel type for +32 bits Windows target" diff --git a/samples/x86_64-unknown-mingw32/crosstool.config b/samples/x86_64-unknown-mingw32/crosstool.config new file mode 100644 index 0000000..ab31b72 --- /dev/null +++ b/samples/x86_64-unknown-mingw32/crosstool.config @@ -0,0 +1,17 @@ +CT_EXPERIMENTAL=y +CT_LOCAL_TARBALLS_DIR="${HOME}/src" +CT_SAVE_TARBALLS=y +CT_LOG_EXTRA=y +CT_ARCH_64=y +CT_ARCH_x86=y +CT_KERNEL_windows=y +CT_BINUTILS_V_2_21_1a=y +CT_BINUTILS_PLUGINS=y +CT_CC_V_4_5_2=y +CT_CC_LANG_CXX=y +CT_MINGW_DIRECTX=y +CT_MINGW_DDK=y +CT_GMP_V_4_3_2=y +CT_MPFR_V_2_4_2=y +CT_PPL_V_0_10_2=y +CT_CLOOG_V_0_15_10=y diff --git a/samples/x86_64-unknown-mingw32/reported.by b/samples/x86_64-unknown-mingw32/reported.by new file mode 100644 index 0000000..6540f43 --- /dev/null +++ b/samples/x86_64-unknown-mingw32/reported.by @@ -0,0 +1,4 @@ +reporter_name="Yann Diorcet " +reporter_url="" +reporter_comment="Config to build cross-compiler with mingw as kernel type for +64 bits Windows target" diff --git a/scripts/build/kernel/mingw32.sh b/scripts/build/kernel/mingw32.sh deleted file mode 100644 index 24ab6c5..0000000 --- a/scripts/build/kernel/mingw32.sh +++ /dev/null @@ -1,27 +0,0 @@ -# This file declares functions to install the kernel headers for mingw -# Copyright 2009 Bart vdr. Meulen -# Licensed under the GPL v2. See COPYING in the root of this package - -CT_DoKernelTupleValues() { - CT_TARGET_KERNEL="mingw32" - CT_TARGET_SYS= -} - -do_kernel_get() { - CT_GetFile "w32api-${CT_W32API_VERSION}-mingw32-src" \ - http://downloads.sourceforge.net/sourceforge/mingw -} - -do_kernel_extract() { - CT_Extract "w32api-${CT_W32API_VERSION}-mingw32-src" -} - -do_kernel_headers() { - CT_DoStep INFO "Installing kernel headers" - - mkdir -p "${CT_HEADERS_DIR}" - cp -r ${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32-src/include/* \ - ${CT_HEADERS_DIR} - - CT_EndStep -} diff --git a/scripts/build/kernel/windows.sh b/scripts/build/kernel/windows.sh new file mode 100644 index 0000000..5e34420 --- /dev/null +++ b/scripts/build/kernel/windows.sh @@ -0,0 +1,22 @@ +# This file declares functions to install the kernel headers for mingw64 +# Copyright 2012 Yann Diorcet +# Licensed under the GPL v2. See COPYING in the root of this package + +CT_DoKernelTupleValues() { + # Even we compile for x86_64 target architecture, the target OS have to + # bet mingw32 (require by gcc and mingw-w64) + CT_TARGET_KERNEL="mingw32" + CT_TARGET_SYS= +} + +do_kernel_get() { + : +} + +do_kernel_extract() { + : +} + +do_kernel_headers() { + : +} 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 + : } - -- cgit v0.10.2-6-g49f6