Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Initial port of ocaml for mingw (long)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: art <ayerkes@g...>
Subject: [Caml-list] Initial port of ocaml for mingw (long)
Using code from the cvsnt project (just one function really), I was
able to make an ocaml that does not depend on cygwin1.dll for windows.
The bad news is that currently, it still depends on gcc -mno-cygwin,
sh and make to build programs, etc.  The good news is that it can
produce programs that don't depend on cygwin1.dll as well (from ocamlc
or ocamlopt).  I have tested programs made with both ocamlc and
ocamlopt, and used objdump to verify that they only depend on the
microsoft C runtime.

File needed here:
http://lcc-java.sourceforge.net/ocaml-boot-mingw.tgz
 (New boot directory)
http://lcc-java.sourceforge.net/ocaml-mingw-diffs
 (patch file for ocaml-3.02 distribution for MinGW.

Assumptions:
 (You *must* have the CAMLLIB env variable set to a dos path
  containing your caml libraries.  You have to have libcamlrun.a
  in this directory in order for things to work.  You may wish
  to premake this directory and copy files as necessary)

Building: 

With the files ocaml-3.02.tar.gz, ocaml-mingw-diffs and
ocaml-boot-mingw.tgz in a directory, do the following:
(sorry for breaking the build process)

gzip -d < ocaml-3.02.tar.gz | tar xvf -
cd ocaml-3.02
patch -p 0 < ../ocaml-mingw-diffs
gzip -d < ../ocaml-boot-mingw.tgz | tar xvf -
make
: The build breaks here (access.c) ... builds ok next time
make
: Need some pre-built cmis... not sure why
make	otherlibs/num/int_misc.cmi \
	otherlibs/num/string_misc.cmi \
	otherlibs/num/arith_flags.cmi
make
: Everything except ocamlopt.exe and family made so far
rm byterun/io.h
make -C asmrun depend
make -C byterun depend
: byterun/io.h is replaced by byterun/_io.h due to a name conflict.
make opt
: Everything made
make install 
make installopt
: Installed

Hopefully, this is a step in the right direction for a MinGW port.
In any case, it relives the user of ocaml toplevel environments
from having to have cygwin, in addition to allowing one to create
executables that are free from cygwin.

To complete the cycle, someone who is a bit better with mingw than
I will have to change the compile line in bytelink.ml and asmlink.ml
to reflect mingw, and do new makefiles (perhaps Dmitry will help with
this?)

Art
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr