make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: UnxUtils, Unix tools on Win32


From: Leeuwesteijn,Joost
Subject: RE: UnxUtils, Unix tools on Win32
Date: Fri, 19 May 2006 14:23:28 +0200

> > Is anyone using UnxUtils (to get some highly required Unix-like features
on
> > Win32) in his/her build environment? I'm using it for its native
> > gawk/grep/echo/sort/etc. See websites:
> > http://unxutils.sourceforge.net/ and
> > http://sourceforge.net/projects/unxutils
> I never liked this project very well.

Don't like it anymore either now I've seen that the CVS code and docs are
rather...minimal...
It uses a 1994 "Downhill" library to catch Unix calls. I can build the lib,
but the Downhill test application (a single .c file) fails; and there's no
info on how to compile the GNU tools themselves, not even info on how the
downloadable .exe's we're created.

> Cygwin is a full blown POSIX emulation so that you don't have to 
> ``port'' the UNIX source code to WINDOWS.  When you build 
> using GCC it requires it cygwin1.dll runtime to support it.

I see, so you can use the original package source code. That's an advantage.
 
> > - MinGW
> MinGW provides GCC and binutils that builds ``native'' binaries (i.e. 
> requires MSVCRT.DLL) and doesn't require a special dll.  Also 
> provides freely distributable msvcrt and w32api headers and import
libraries.  
> MinGW has MSYS (Minimal SYStem) which contains a modified version of 
> Cygwin but its purpose is to provide a shell environment for the 
> MINGW32 target.  The modifications removed all registry fingerprint, 
> auto conversion of pathing from POSIX to Windows, and reduced 
> /cygdrive/c to just /c.  The shell provided is bash but name sh for 
> POSIX compliance.  MSYS uses MinGW gcc so there is no 
> dependency on any special runtime dll in your built code.

MSYS = sort of Cygwin, MinGW = development tools. OK. So part of MSYS is not
native.

> > - GnuWin32
> Many unixy tools ported to native MSVCRT can be found here.  If MinGW 
> doesn't provide it, you should use it from here.

As read on the GnuWin32 site, it uses MinGW to build the tools and needs a
shell as well (Cygwin or MSYS).
MSYS + MinGW + GnuWin32 seem like a (mostly) native replacement for CygWin,
but GnuWin32 uses modified source code, right?

Hmm, I can't see the advantage of CygWin or MinGW/MSYS just yet. Native
might perform better and you don't need the DLL but not having to modify a
package source is also quite (very!) useful. And I can't think of anything
that would need to be ported/modified in the GnuWin32 sources just
yet...I'll think about that.

So all in all, MSYS + MinGW + GnuWin32 seems like a good combination too.
Although it's quite a lot of data if you want to put everything into our
archive, including source, and to get everything running.
I was hoping on: GNU tool source code + nmake makefile + library like
UnxUtils' "Downhill" to catch Unix calls and that's it. That's not going to
work...

My main goal/concern is to put every tool, including its source code, into
our archive so it can be reproduced/debugged/modified in the future; in case
of bugs, new requirements or when sites go down. It should be useable even
after 5 (or 10?) years, and not refer to a 404 website.

> > Any other (free, open source) tools I should know about?
> Too many to list here.

Really? I also know about MKS Toolkit (not free I believe) and DJGPP (still
active?). But CygWin and MinGW are the most active/used ones right? Or am I
missing a "big player"?

> > I put GNU make and it's source into our archive, compiled it using
Visual C
> > 6. No problem. I was hoping to do the same with other GNU tools but no
luck
> > so far.
> You should be able to take make-3.81 source and build it in 
> MSYS using ./configure --prefix=/mingw && make.

"GNU make-381" wasn't the problem :-) (I compiled it using Mcrsft Visual C
6). It's the other tools (gawk, grep, etc.) I'm looking at. UnxUtils seems
to be a dead end.

Regards,
Joost Leeuwesteijn




reply via email to

[Prev in Thread] Current Thread [Next in Thread]