i modified the compilerplugin a bit to use the mingw64 32 bit compiler by default.I appreciate your effort, but did you ensure to provide the sources, too to comply with the GPL license? I didn't find it. You wrote that you modified the core, thus a patch / sources is required. Especially if you distribute the link through our forum.
if possible ill try to get it to autodetect both the 64 and 32 bit compiler atm only the 32 bit one is autodetected.That would be a nice contribution. :-)
--- compilerMINGW.cpp.orig 2011-08-05 20:58:41 +0000
+++ compilerMINGW.cpp 2011-08-06 06:23:08 +0000
@@ -25,7 +25,7 @@
#include <configmanager.h>
#ifdef __WXMSW__
- #include <wx/msw/registry.h>
+#include <wx/msw/registry.h>
#endif
CompilerMINGW::CompilerMINGW(const wxString& name, const wxString& ID)
@@ -55,13 +55,27 @@
{
if (platform::windows)
{
- m_Programs.C = _T("mingw32-gcc.exe");
- m_Programs.CPP = _T("mingw32-g++.exe");
- m_Programs.LD = _T("mingw32-g++.exe");
- m_Programs.DBG = _T("gdb.exe");
- m_Programs.LIB = _T("ar.exe");
- m_Programs.WINDRES = _T("windres.exe");
- m_Programs.MAKE = _T("mingw32-make.exe");
+ // need an idea to also reset the standard mingw compiler ?
+ if (wxIsPlatform64Bit())
+ {
+ m_Programs.C = _T("x86_64-w64-mingw32-gcc.exe");
+ m_Programs.CPP = _T("x86_64-w64-mingw32-g++.exe");
+ m_Programs.LD = _T("x86_64-w64-mingw32-g++.exe");
+ m_Programs.DBG = _T("gdb.exe");
+ m_Programs.LIB = _T("ar.exe");
+ m_Programs.WINDRES = _T("windres.exe");
+ m_Programs.MAKE = _T("winmake.exe");
+ }
+ else
+ {
+ m_Programs.C = _T("i686-w64-mingw32-gcc.exe");
+ m_Programs.CPP = _T("i686-w64-mingw32-g++.exe");
+ m_Programs.LD = _T("i686-w64-mingw32-g++.exe");
+ m_Programs.DBG = _T("gdb.exe");
+ m_Programs.LIB = _T("ar.exe");
+ m_Programs.WINDRES = _T("windres.exe");
+ m_Programs.MAKE = _T("winmake.exe");
+ }
}
else
{
@@ -96,12 +110,12 @@
m_Options.ClearOptions();
m_Options.AddOption(_("Produce debugging symbols"),
- _T("-g"),
- _("Debugging"),
- _T(""),
- true,
- _T("-O -O1 -O2 -O3 -Os"),
- _("You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols..."));
+ _T("-g"),
+ _("Debugging"),
+ _T(""),
+ true,
+ _T("-O -O1 -O2 -O3 -Os"),
+ _("You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols..."));
wxString gprof_link = _T("-pg");
if (platform::windows)
gprof_link = _T("-pg -lgmon");
@@ -144,6 +158,7 @@
m_Options.AddOption(_("Optimize generated code (for size)"), _T("-Os"), category);
m_Options.AddOption(_("Expensive optimizations"), _T("-fexpensive-optimizations"), category);
m_Options.AddOption(_("Don't keep the frame pointer in a register for functions that don't need one"), _T("-fomit-frame-pointer"), category);
+
// machine dependent options - cpu arch
category = _("CPU architecture tuning (choose none, or only one of these)");
m_Options.AddOption(_("i386"), _T("-march=i386"), category);
@@ -175,6 +190,7 @@
m_Commands[(int)ctGenDependenciesCmd].push_back(CompilerTool(_T("$compiler -MM $options -MF $dep_object -MT $object $includes $file")));
m_Commands[(int)ctCompileResourceCmd].push_back(CompilerTool(_T("$rescomp -i $file -J rc -o $resource_output -O coff $res_includes")));
m_Commands[(int)ctLinkConsoleExeCmd].push_back(CompilerTool(_T("$linker $libdirs -o $exe_output $link_objects $link_resobjects $link_options $libs")));
+
if (platform::windows)
{
m_Commands[(int)ctLinkNativeCmd].push_back(CompilerTool(_T("$linker $libdirs -o $exe_output $link_objects $link_resobjects $link_options $libs --subsystem,native")));
@@ -249,15 +265,25 @@
}
}
}
-
wxString sep = wxFileName::GetPathSeparator();
+
if (platform::windows)
{
// look first if MinGW was installed with Code::Blocks (new in beta6)
m_MasterPath = ConfigManager::GetExecutableFolder();
if (!wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C))
+ {
// if that didn't do it, look under C::B\MinGW, too (new in 08.02)
m_MasterPath += sep + _T("MinGW");
+ }
+
+ if (!wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C))
+ {
+ // if that didn't do it, look under C::B\MinGW32 or C::B\MinGW64, too (new in 08.02)
+ m_MasterPath += wxIsPlatform64Bit() ? sep + _T("MinGW64") : sep + _T("MinGW32");
+ }
+
+ // standard mingw no 64 bit compiler and the mingw64 compiler has no ini.
if (!wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C))
{
// no... search for MinGW installation dir
@@ -300,16 +326,15 @@
#endif
}
}
- else
- m_Programs.MAKE = _T("make.exe"); // we distribute "make" not "mingw32-make"
+ else m_Programs.MAKE = _T("make.exe"); // we distribute "make" not "mingw32-make"
}
- else
- m_MasterPath = _T("/usr");
+ else m_MasterPath = _T("/usr");
AutoDetectResult ret = wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C) ? adrDetected : adrGuessed;
// don't add lib/include dirs. GCC knows where its files are located
SetVersionString();
+
return ret;
}
@@ -317,7 +342,7 @@
{
/* NOTE (Biplab#9#): There is a critical bug which blocks C::B from starting up.
So we'll disable version string checking till we fix the bug. */
- #if !wxCHECK_VERSION(2, 9, 0)
+#if !wxCHECK_VERSION(2, 9, 0)
// Manager::Get()->GetLogManager()->DebugLog(_T("Compiler detection for compiler ID: '") + GetID() + _T("' (parent ID= '") + GetParentID() + _T("')"));
wxArrayString output, errors;
@@ -394,5 +419,5 @@
}
}
}
- #endif
+#endif
}
it was 1G size, I guess no body would like to download thisI think reckless built the tools using LTO, so the package is very large.
atm i use wx's 64 bit OS check to set the 64 bit mingw compiler (it works) but some might want to use the 32 bit mingw on say win 7 64 and in that case it fails but i suspect i could make an option to select either one.You can release the 32bit package and the 64bit package.
void CompilerMINGW::Reset()
{
/* yep its windose */
if (platform::windows)
{
/* checking OS is it 64 bit ? */
if (wxIsPlatform64Bit())
{
/* we got a 64 bit OS set the MinGW 64 compiler */
m_Programs.C = _T("x86_64-w64-mingw32-gcc.exe");
m_Programs.CPP = _T("x86_64-w64-mingw32-g++.exe");
m_Programs.LD = _T("x86_64-w64-mingw32-g++.exe");
m_Programs.DBG = _T("gdb.exe");
m_Programs.LIB = _T("ar.exe");
m_Programs.WINDRES = _T("windres.exe");
m_Programs.MAKE = _T("winmake.exe");
}
else
{
/* 32 bit OS set the MinGW32 compiler */
m_Programs.C = _T("i686-w64-mingw32-gcc.exe");
m_Programs.CPP = _T("i686-w64-mingw32-g++.exe");
m_Programs.LD = _T("i686-w64-mingw32-g++.exe");
m_Programs.DBG = _T("gdb.exe");
m_Programs.LIB = _T("ar.exe");
m_Programs.WINDRES = _T("windres.exe");
m_Programs.MAKE = _T("winmake.exe");
}
/* heh and now it gets hairy cause i just destroyed the check for the standard MinGW compiler :( */
}
else
{
m_Programs.C = _T("gcc");
m_Programs.CPP = _T("g++");
m_Programs.LD = _T("g++");
m_Programs.DBG = _T("gdb");
m_Programs.LIB = _T("ar");
m_Programs.WINDRES = _T("");
m_Programs.MAKE = _T("make");
}
m_Switches.includeDirs = _T("-I");
m_Switches.libDirs = _T("-L");
m_Switches.linkLibs = _T("-l");
m_Switches.defines = _T("-D");
m_Switches.genericSwitch = _T("-");
m_Switches.objectExtension = _T("o");
m_Switches.needDependencies = true;
m_Switches.forceCompilerUseQuotes = false;
m_Switches.forceLinkerUseQuotes = false;
m_Switches.logging = clogSimple;
m_Switches.libPrefix = _T("lib");
m_Switches.libExtension = _T("a");
m_Switches.linkerNeedsLibPrefix = false;
m_Switches.linkerNeedsLibExtension = false;
m_Switches.supportsPCH = true;
m_Switches.PCHExtension = _T("h.gch");
m_Switches.UseFullSourcePaths = true; // use the GDB workaround !!!!!!!!
// Summary of GCC options: http://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html
m_Options.ClearOptions();
m_Options.AddOption(_("Produce debugging symbols"),
_T("-g"),
_("Debugging"),
_T(""),
true,
_T("-O -O1 -O2 -O3 -Os"),
_("You have optimizations enabled. This is Not A Good Thing(tm) when producing debugging symbols..."));
wxString gprof_link = _T("-pg");
if (platform::windows)
gprof_link = _T("-pg -lgmon");
m_Options.AddOption(_("Profile code when executed"), _T("-pg"), _("Profiling"), gprof_link);
wxString category = _("Warnings");
// warnings
m_Options.AddOption(_("In C mode, support all ISO C90 programs. In C++ mode, remove GNU extensions that conflict with ISO C++"), _T("-ansi"), category);
m_Options.AddOption(_("Enable all compiler warnings (overrides many other settings)"), _T("-Wall"), category);
m_Options.AddOption(_("Enable extra compiler warnings"), _T("-Wextra"), category);
m_Options.AddOption(_("Stop compiling after first error"), _T("-Wfatal-errors"), category);
m_Options.AddOption(_("Inhibit all warning messages"), _T("-w"), category);
m_Options.AddOption(_("Have g++ follow the 1998 ISO C++ language standard"), _T("-std=c++98"), category);
m_Options.AddOption(_("Have g++ follow the coming C++0x ISO C++ language standard"), _T("-std=c++0x"), category);
m_Options.AddOption(_("Enable warnings demanded by strict ISO C and ISO C++"), _T("-pedantic"), category);
m_Options.AddOption(_("Treat as errors the warnings demanded by strict ISO C and ISO C++"), _T("-pedantic-errors"), category);
m_Options.AddOption(_("Warn if main() is not conformant"), _T("-Wmain"), category);
m_Options.AddOption(_("Enable Effective-C++ warnings (thanks Scott Meyers)"), _T("-Weffc++"), category);
m_Options.AddOption(_("Warn whenever a switch statement does not have a default case"), _T("-Wswitch-default"), category);
m_Options.AddOption(_("Warn whenever a switch statement has an index of enumerated type and lacks a case for one or more of the named codes of that enumeration"), _T("-Wswitch-enum"), category);
m_Options.AddOption(_("Warn if a user supplied include directory does not exist"), _T("-Wmissing-include-dirs"), category);
m_Options.AddOption(_("Warn if a global function is defined without a previous declaration"), _T("-Wmissing-declarations"), category);
m_Options.AddOption(_("Warn if the compiler detects that code will never be executed"), _T("-Wunreachable-code"), category);
m_Options.AddOption(_("Warn if a function can not be inlined and it was declared as inline"), _T("-Winline"), category);
m_Options.AddOption(_("Warn if floating point values are used in equality comparisons"), _T("-Wfloat-equal"), category);
m_Options.AddOption(_("Warn if an undefined identifier is evaluated in an '#if' directive"), _T("-Wundef"), category);
m_Options.AddOption(_("Warn whenever a pointer is cast such that the required alignment of the target is increased"), _T("-Wcast-align"), category);
m_Options.AddOption(_("Warn if anything is declared more than once in the same scope"), _T("-Wredundant-decls"), category);
m_Options.AddOption(_("Warn about unitialized variables which are initialized with themselves"), _T("-Winit-self"), category);
m_Options.AddOption(_("Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a built-in function is shadowed"), _T("-Wshadow"), category);
// optimization
category = _("Optimization");
m_Options.AddOption(_("Strip all symbols from binary (minimizes size)"), _T(""), category, _T("-s"), true, _T("-g -ggdb"), _("Stripping the binary will strip debugging symbols as well!"));
m_Options.AddOption(_("Optimize generated code (for speed)"), _T("-O"), category);
m_Options.AddOption(_("Optimize more (for speed)"), _T("-O1"), category);
m_Options.AddOption(_("Optimize even more (for speed)"), _T("-O2"), category);
m_Options.AddOption(_("Optimize fully (for speed)"), _T("-O3"), category);
m_Options.AddOption(_("Optimize generated code (for size)"), _T("-Os"), category);
m_Options.AddOption(_("Expensive optimizations"), _T("-fexpensive-optimizations"), category);
m_Options.AddOption(_("Don't keep the frame pointer in a register for functions that don't need one"), _T("-fomit-frame-pointer"), category);
// machine dependent options - cpu arch
category = _("CPU architecture tuning (choose none, or only one of these)");
m_Options.AddOption(_("i386"), _T("-march=i386"), category);
m_Options.AddOption(_("i486"), _T("-march=i486"), category);
m_Options.AddOption(_("Intel Pentium"), _T("-march=i586"), category);
m_Options.AddOption(_("Intel Pentium (MMX)"), _T("-march=pentium-mmx"), category);
m_Options.AddOption(_("Intel Pentium PRO"), _T("-march=i686"), category);
m_Options.AddOption(_("Intel Pentium 2 (MMX)"), _T("-march=pentium2"), category);
m_Options.AddOption(_("Intel Pentium 3 (MMX, SSE)"), _T("-march=pentium3"), category);
m_Options.AddOption(_("Intel Pentium 4 (MMX, SSE, SSE2)"), _T("-march=pentium4"), category);
m_Options.AddOption(_("Intel Pentium 4 Prescott (MMX, SSE, SSE2, SSE3)"), _T("-march=prescott"), category);
m_Options.AddOption(_("Intel Pentium 4 Nocona (MMX, SSE, SSE2, SSE3, 64bit extensions)"), _T("-march=nocona"), category);
m_Options.AddOption(_("Intel Pentium M (MMX, SSE, SSE2)"), _T("-march=pentium-m"), category);
m_Options.AddOption(_("Intel Core2 (MMX, SSE, SSE2, SSE3, SSSE3, 64bit extensions)"), _T("-march=core2"), category);
m_Options.AddOption(_("Intel Corei7 (MMX, SSE, SSE2, SSE3, SSSE3, 64bit extensions)"), _T("-march=corei7"), category);
m_Options.AddOption(_("AMD K6 (MMX)"), _T("-march=k6"), category);
m_Options.AddOption(_("AMD K6-2 (MMX, 3DNow!)"), _T("-march=k6-2"), category);
m_Options.AddOption(_("AMD K6-3 (MMX, 3DNow!)"), _T("-march=k6-3"), category);
m_Options.AddOption(_("AMD Athlon (MMX, 3DNow!, enhanced 3DNow!, SSE prefetch)"), _T("-march=athlon"), category);
m_Options.AddOption(_("AMD Athlon Thunderbird (MMX, 3DNow!, enhanced 3DNow!, SSE prefetch)"), _T("-march=athlon-tbird"), category);
m_Options.AddOption(_("AMD Athlon 4 (MMX, 3DNow!, enhanced 3DNow!, full SSE)"), _T("-march=athlon-4"), category);
m_Options.AddOption(_("AMD Athlon XP (MMX, 3DNow!, enhanced 3DNow!, full SSE)"), _T("-march=athlon-xp"), category);
m_Options.AddOption(_("AMD Athlon MP (MMX, 3DNow!, enhanced 3DNow!, full SSE)"), _T("-march=athlon-mp"), category);
m_Options.AddOption(_("AMD K8 core (x86-64 instruction set)"), _T("-march=k8"), category);
m_Options.AddOption(_("AMD Opteron (x86-64 instruction set)"), _T("-march=opteron"), category);
m_Options.AddOption(_("AMD Athlon64 (x86-64 instruction set)"), _T("-march=athlon64"), category);
m_Options.AddOption(_("AMD Athlon-FX (x86-64 instruction set)"), _T("-march=athlon-fx"), category);
m_Commands[(int)ctCompileObjectCmd].push_back(CompilerTool(_T("$compiler $options $includes -c $file -o $object")));
m_Commands[(int)ctGenDependenciesCmd].push_back(CompilerTool(_T("$compiler -MM $options -MF $dep_object -MT $object $includes $file")));
m_Commands[(int)ctCompileResourceCmd].push_back(CompilerTool(_T("$rescomp $res_includes -J rc -O coff -i $file -o $resource_output")));
m_Commands[(int)ctLinkConsoleExeCmd].push_back(CompilerTool(_T("$linker $libdirs -o $exe_output $link_objects $link_resobjects $link_options $libs")));
if (platform::windows)
{
m_Commands[(int)ctLinkNativeCmd].push_back(CompilerTool(_T("$linker $libdirs -o $exe_output $link_objects $link_resobjects $link_options $libs --subsystem,native")));
m_Commands[(int)ctLinkExeCmd].push_back(CompilerTool(_T("$linker $libdirs -o $exe_output $link_objects $link_resobjects $link_options $libs -mwindows")));
m_Commands[(int)ctLinkDynamicCmd].push_back(CompilerTool(_T("$linker -shared -Wl,--output-def=$def_output -Wl,--out-implib=$static_output -Wl,--dll $libdirs $link_objects $link_resobjects -o $exe_output $link_options $libs")));
}
else
{
m_Commands[(int)ctLinkExeCmd] = m_Commands[(int)ctLinkConsoleExeCmd]; // no -mwindows
m_Commands[(int)ctLinkNativeCmd] = m_Commands[(int)ctLinkConsoleExeCmd]; // no -mwindows
m_Commands[(int)ctLinkDynamicCmd].push_back(CompilerTool(_T("$linker -shared $libdirs $link_objects $link_resobjects -o $exe_output $link_options $libs")));
}
m_Commands[(int)ctLinkStaticCmd].push_back(CompilerTool(_T("$lib_linker -r -s $static_output $link_objects")));
LoadDefaultRegExArray();
m_CompilerOptions.Clear();
m_LinkerOptions.Clear();
m_LinkLibs.Clear();
m_CmdsBefore.Clear();
m_CmdsAfter.Clear();
SetVersionString();
}
AutoDetectResult CompilerMINGW::AutoDetectInstallationDir()
{
// try to find MinGW in environment variable PATH first
wxString pathValues;
wxGetEnv(_T("PATH"), &pathValues);
if (!pathValues.IsEmpty())
{
wxString sep = platform::windows ? _T(";") : _T(":");
wxChar pathSep = platform::windows ? _T('\\') : _T('/');
wxArrayString pathArray = GetArrayFromString(pathValues, sep);
for (size_t i = 0; i < pathArray.GetCount(); ++i)
{
if (wxFileExists(pathArray[i] + pathSep + m_Programs.C))
{
if (pathArray[i].AfterLast(pathSep).IsSameAs(_T("bin")))
{
m_MasterPath = pathArray[i].BeforeLast(pathSep);
return adrDetected;
}
}
}
}
wxString sep = wxFileName::GetPathSeparator();
if (platform::windows)
{
// look first if MinGW was installed with Code::Blocks (new in beta6)
m_MasterPath = ConfigManager::GetExecutableFolder();
if (!wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C))
{
// if that didn't do it, look under C::B\MinGW32 or C::B\MinGW64, too (new in 08.02)
m_MasterPath += wxIsPlatform64Bit() ? sep + _T("MinGW64") : sep + _T("MinGW32");
if (!wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C))
{
#ifdef __WXMSW__ // for wxRegKey
// not found...
// look for dev-cpp installation
wxRegKey key; // defaults to HKCR
key.SetName(_T("HKEY_LOCAL_MACHINE\\Software\\Dev-C++"));
if (key.Exists() && key.Open(wxRegKey::Read))
{
// found; read it
key.QueryValue(_T("Install_Dir"), m_MasterPath);
}
else
{
// installed by inno-setup
// HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Minimalist GNU for Windows 4.1_is1
wxString name;
long index;
key.SetName(_T("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall"));
//key.SetName("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion");
bool ok = key.GetFirstKey(name, index);
while (ok && !name.StartsWith(_T("Minimalist GNU for Windows")))
{
ok = key.GetNextKey(name, index);
}
if (ok)
{
name = key.GetName() + _T("\\") + name;
key.SetName(name);
if (key.Exists() && key.Open(wxRegKey::Read))
key.QueryValue(_T("InstallLocation"), m_MasterPath);
}
}
#endif
}
}
else
m_Programs.MAKE = _T("make.exe"); // we distribute "make" not "mingw32-make"
}
else
m_MasterPath = _T("/usr");
AutoDetectResult ret = wxFileExists(m_MasterPath + sep + _T("bin") + sep + m_Programs.C) ? adrDetected : adrGuessed;
// don't add lib/include dirs. GCC knows where its files are located
SetVersionString();
return ret;
}
if (master_path.IsEmpty())
{
/* Notice: In general this is bad luck as e.g. all copies of a
* compiler have a different path, most likely.
* Thus the following might even return a wrong command!
*/
/* revelator aye this is not portable as is */
if (platform::windows)
m_MasterPath += wxIsPlatform64Bit() ? _T("C:\\CodeBlocks\\MinGW64") : _T("C:\\CodeBlocks\\MinGW32");
else
master_path = _T("/usr");
}
well since people obviously still use 56K modems (joke) :) i decided to make a minimal package as well.
Besides my own additions to the msys package its just C::B+ MinGW32 and MinGW64 (version 4.6.1)
coreutils 2.22 (not released but only one that seems to support the LTO plugin correctly).
If you want to know which additions i made to Msys heres a short list.
Updated some api stuff to support building newer posix stuff (msyscore internal) (version ? since its my own hackery we could call it 1.0).
By ported i mean made to work with Msys itself.
Ported ncurses to msys and made bash and sh use it instead of termios. allows for more color styles. (version 5.7)
Ported rsync (very powerfull client/server). (version 3.8 )
Ported abook (address book gimmick). (version ? did it way back)
Ported openjade and opensp as well as Cygwins Docbook system to Msys. (used for creating documentation from xml pages) (OpenSP version 1.5.2 and OpenJade 1.3.3-1)
Added xslt (needed by some doc tools). (version 1.73.2)
Ported lynx (console browser. also used by some applications for downloading stuff like perl when updating CPAN packages). (version 1.48)
Ported pth threads (thread library). (version 2.07)
Ported coreutils 8.10-1 (newer again). (version 8.10-1)
Ported s-lang (like ncurses a terminal library). (version 2.2.2)
Ported zsh (z shell from dave korn can use it instead of bash if you like it better). (version 4.3.10)
Ported yaml (data serialization). (version 0.71)
Ported neon (http and webdav library). (0.28.4)
Ported cocom (compiler build tool used internally in some projects). (version 0.996)
Ported gpg. (might also be availiable from mingw site though). (version 1.4.11)
Ported xmlto (openjade uses it for building its own documentation). (version 0.0.21)
Ported gsar (general search and replace) stems back from the dos days but its rather handy. (version 121)
Autotools (added pretty much any version of autoconf and automake with wrappers to msys). (automake 1.4 to 1.11 and autoconf 2.13 to 2.68)
Ported curl (another fine tool for transfering stuff by net). (version 7.19.0)
Ill add this info to the site also.
And of course you're ignoring the shift-key advise (add to it no-new-lines-advise between lines).Agreed, and reckless's posts sometimes were hard to read and understand, You should wrote clearly, especially I'm not a native English speaker.
Your posts are barely readable.
Am i that hard to read ?. Sorry about that, ill see if i can write a bit cleaner, but english is not my native language either.
It is not 1 GB anymore, im removing that package as it seems to confuse people. The new package is about 360 mb still big but im working on stripping everything to the bone,
so i might be able to squash its size a little more. Everything that was in the old package will be uploaded as seperate packages.
And sorry for the offtopic stuff its not exactly related to C::B itself. I just wanted to create something as ready to go as possible for people not used to working with a gcc compiler.
I think the message came through that i need to be a little more clear.
In short it was an attempt to make an easy to use package for the MinGW64 compilers with C::B,
plus a posix shell environment with some otherwise not to easy things allready setup for use.
Question.
So why would i need Msys for C::B ?.
A: Because many tools and libraries you might need dont have a C::B workspace.
B: To port something from say linux to windows, and use it in your application.
C: Because one of the tools you intend to use needs a posix shell.
Hmm might be usefull.
Answer.
A: I only use windows libraries or tools ported from msvc.
B: see A.
C: I dont use scripts and/or autotools again see A.
Cool go ahead and use the normal distribution :) .