caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: art <ayerkes@gmvnetwork.com>
To: caml-list@inria.fr
Subject: [Caml-list] Initial port of ocaml for mingw (long)
Date: Mon, 24 Sep 2001 18:40:13 -0500	[thread overview]
Message-ID: <3BAFC45D.9EAB97D9@gmvnetwork.com> (raw)

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


             reply	other threads:[~2001-09-24 23:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-24 23:40 art [this message]
2001-09-25  8:59 ` [Caml-list] format types Anton Moscal
2001-09-27  0:35   ` Jacques Garrigue
2001-10-17 19:07 ` [Caml-list] Ocaml 3.03 alpha MinGW port Dmitry Bely
2001-10-22  1:46   ` Masakazu Fukuzawa
2001-10-22 14:56     ` Dmitry Bely
2001-10-22 16:18       ` Masakazu Fukuzawa
2001-09-25 19:34 [Caml-list] Initial port of ocaml for mingw (long) CaptnJamesKirk
2001-09-25 20:24 art
2001-09-26 13:06 CaptnJamesKirk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3BAFC45D.9EAB97D9@gmvnetwork.com \
    --to=ayerkes@gmvnetwork.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).