Msys

Intro to Msys

MSYS was created out of a long-lived desire to provide the MinGW community a Minimal SYStem, with which a configure script could be executed in a Windows environment.

"Msys is just a native compiled bash plus some other native compiled gnu tools. . . . The point is there is a minimal posix-style command line environment that should just be enough to run configure scripts. Unlike cygwin which gives you a full linux-style command line and runtime environment. . . . It's a minimal cygwin. . . . The main issue is that the configure result is suitable for mingw gcc to generate native compiled binaries."

See Building Tcl/Tk with Mingw for info about building Tcl/Tk with Msys and Mingw.

More information about Msys can be found here:

https://www.msys2.org

  Outdated material

Some very old versions (2005 and older) of msys and mingw can be downloaded here:

http://sourceforge.net/project/showfiles.php?group_id=10894

It is the same software once available from http://mingw.org/ , except that all the needed software was packaged into a single download. The software worked with older Tcl and Tk version but are now probably only of historical interest.


What is MSYS?

MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.

MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the Microsoft C runtime library. Additionally, threaded applications must ship with a freely distributable thread support DLL, provided as part of MinGW itself).

MinGW compilers provide access to the functionality of the Microsoft C runtime and some language-specific runtimes. MinGW, being Minimalist, does not, and never will, attempt to provide a POSIX runtime environment for POSIX application deployment on MS-Windows. If you want POSIX application deployment on this platform, please consider Cygwin instead.


Community Comments

RS: I've installed msys on W95 and Win XP and like them quite much. Beyond allowing configure/make to pass, it also gives a decent interactive shell (way better than command.com or cmd.exe...) Just some notes:

  • The msys.bat does quite some voodoo, but on XP I can't get plain black on white text in the console. It helped to just create a link to sh.exe directly.
  • Most commands I expected are there (Perl is not, but I'm not missing that), but du/df aren't.
  • The alternative shell rxvt.exe looks colorful, but can't run for instance tclsh interactively. So sh.exe is still best for me
  • I have not yet found a way where to put a ~/.bashrc so that it has actual effect on startup (neither in Windows HOME, nor in msys HOME...). Advice very welcome :^)

vaselinessa: Adding a line to the very end of /etc/profile can make your shell read ~/.bashrc on startup:

        . ./.bashrc

Duoas The shell only looks for ~/.profile, AFAIK. Put your configuration there. - RS: Great, thanks very much! Friendly hackers still beat the documentation, like bash's

 $ sh -c "help set"

where it says (and I had no other documentation at hand):

        -i  Force the shell to be an "interactive" one.  Interactive shells
            always read `~/.bashrc' on startup.

Also, I've never liked the wonky M icon that comes with MSYS, so I made my own: [L1 ]

LV If I have a system with a newer mingw already installed, is there a relatively painless way to get msys installed ? If I read the above info about the download zip correctly, it will install a relatively old version of mingw as a part of its installation process.

Duoas No, the MSYS/MinGW site is very confusing to read, but MSYS is separate from MinGW. In fact, when you install, be very careful to keep them separate. Never mix MSYS and MinGW. For example, on my XP, I have MSYS installed at C:\Program Files\msys and MinGW at C:\Program Files\MinGW . Keep in mind that my directories are abnormal (a lot of nix utilities need special help to deal with paths containing spaces --even those that ought to know better [bjam, for example]).

For others reading or installing MSYS for the first time: install MinGW first, and MSYS second. Doing so will make your make work right. (Don't mess with it!) You may want to create a link named "make" pointing to the mingw32-make.exe file, so you can actually type "make" at the command prompt. A simple alias will usually do just fine; in your ~/.profile add a line that reads

    alias make=`ming32-make`

Hope this helps.


LV 2009-Sep-18

Will installation of Msys and Mingw be sufficient to deal with cases where the source distribution contains a configure.in and not a configure? Or does one have to chase down the long chain of programs that one needs to install to run authconf?

Duoas 2009-Sep-27

Typically, yes.

MSYS includes autoconf and automake. They aren't the latest versions, though, and will have problems with certain compile configurations (not related to anything Tcl does). IIRC, it is notoriously difficult to compile them under MSYS, and there are some resources around the web about it. I think there is information about it related to making Glade work.


See also