filepath mangling under Windows?

Mike Thomas Mike Thomas" <
Wed, 6 Mar 2002 09:39:00 +1000

Hi all.

> What I'm wondering is whether the difficulty is a necessary one, or
> if it was unintentional, is there an easy fix?  From your suggestions,
> I guess there isn't an easy fix.

I haven't tried this with GHC yet but Earnie Boyd on Sourceforge has
recently forked Cygwin to produce a Mingw32 build environment called MSYS.

This environment uses the same native Mingw32 gcc as distributed with GHC
and is designed to allow the use of native Windows tools within a GNU
autotools configuration/build environment.  MSYS converts native paths into
Posix while executing processes (including Cygwin soft links) and may help
your user, Malcolm, to build under Windows while retaining the benefits of a
GNU Posix work environment - Makefiles etc.

In contrast to Cygwin, executables produced under MSYS are completely normal
native Win32 programs (as produced by Mingw32).

Most importantly, they depend only on MS Win32 libraries - not on
cygwin1.dll or other Posix emulation libraries.

> > You make it sound as if it isn't possible, which certainly isn't the
> > case - you just have to keep in mind that using filepaths that only
> > makes sense wrt. the Cygwin mount table is not a Good Idea,
> > i.e., stuff like /cygdrive/d/foo. (Have a look at the 'cygpath' utility,
> > btw).
> I have already suggested `cygpath' to the user, which is rather ugly
> but does at least work.  One issue for me however, as a distributor
> of Haskell software, is that I don't want to pollute the installation
> Makefiles with lots of `cygpath' stuff that is only applicable to
> one platform.  Maybe I can find a relatively painless way to propagate
> the cygpath calls through a Makefile hierarchy at configure time.
> > If you're really that gung-ho about cygwin, you could always compile
> > up GHC using the cygwin toolchain.
> I avoid Windows altogether myself, but I'll suggest it to the user
> who had the original complaint.

This is why no-one uses Haskell. (Ooops :))


Mike Thomas.