Version française
Home     About     Download     Resources     Contact us    
Browse thread
MinGW port w/o Cygwin?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Adrien <camaradetux@g...>
Subject: Re : Re: [Caml-list] Re: MinGW port w/o Cygwin?
2007/12/20, Kuba Ober <ober.14@osu.edu>:
> I guess that Ocaml maintainers should just drop that Cygwin requirement, and
> tweak their build process to work "out of the box" with MSYS/MinGW.

You shouldn't see cygwin as a _requirement_.
Ocaml installation from source (let the binary distributions be a
special case) use C. If there is no c compiler installed as it is
under all windows installations (I mean right after setup is
completed) ocaml simply can't be installed ; the problem is not with
ocaml or cygwin but with windows. Cygwin is not a fancy requirement
just one of the few ways to get a c compiler under windows.

Also mingw without cygwin still lacks a lot of things. Capabilities
are there but it seems header files have not been updated in ages and
linker flags need to be different (you will often need -lws2_32 for
many C apps especially).
It is possible to "activate" a *lot* of ocaml features, as seen in
config/s.h, (did that for pthreads among others) by expanding mingw
header files and adding a few linker flags.
Anyway, the result is a big headache for the developper. I perfectly
understand the ocaml team is not willing to make a complete mingw/msys
port ; it's such a mess.


2007/12/23, "Márk S. Zoltán" <zoltan.s.mark@dravanet.hu>:
> I don't think the MinGW-over-Cygwin variant must actually be dropped,
> since a pure MSys + MinGW version would be relatively easy to maintain
> alongside it.
So there would be msvc, cygwin, cygwin/mingw, msys/mingw with
different configuration files for each. While such a port would be
easy to create it wouldn't be wise to create it imho ; it wouldn't
help maintaining and would create bugs along with more work for the
ocaml team.
Just look at the x86-32/x86-64 arch reunification of the linux kernel
(1) for a similar story.
  http://lwn.net/Articles/243704/

And then one could add a SFU port (Services For Unix) which lets you
compile ocaml without problem except that it works so well ocaml
thinks it is running under unix and uses forward-slashes as path
separators. (everything that ./configure can enable is enabled)

(* For the story, as recently as yesterday, I wanted to rsync a
slackware-current repository but had lost one of the few proper
non-cygwin rsync windows port so I downloaded the source and tried to
compile with mingw just to remember last time I tried I spent two
hours. I then used sfu, cd'ed in the source directory, ./configure,
make, strip and within 90 seconds my rsync build was ready to
download. SFU is free though not free as in free speech, but when
you've spent hours on msys/mingw, you can accept anything and be
really happy with it. *)


> As an illustration, pretty much all I ever needed to do is
> comment out a code snippet in ccomp.ml (to prevent a responsefile from
> being even used, see below) and then build ocaml on MSys according to
> the same procedure one would use for MinGW over Cygwin. With v3.10 this
> works like a charm.

The 256 characters limit is now 4096 in ocaml 3.11 so you don't even
need to edit it. But don't think it means inria is readying an
msys/mingw port, this was just a side effect and another problems
appeared, though it is as trivial to fix.


 ---

Adrien Nader