Browse thread
[Caml-list] Initial port of ocaml for mingw (long)
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2001-09-24 (23:40) |
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