From: "Jocelyn Sérot" <jocelyn.serot@wanadoo.fr>
To: "Török Edwin" <edwintorok@gmail.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Running ocaml programs on Windows
Date: Sun, 11 Sep 2011 18:41:55 +0200 [thread overview]
Message-ID: <09FF4221-23ED-41A3-982E-3E9CEC6BE09C@wanadoo.fr> (raw)
In-Reply-To: <4E6CC8C8.9030001@gmail.com>
Le 11 sept. 11 à 16:42, Török Edwin a écrit :
> On 2011-09-11 17:31, Jocelyn Sérot wrote:
>> Thanks for your answer, Edwin.
>
> Did you mean to reply to me directly?
> If not please CC the ML too.
No. I did CC but from a mail account different from the one i used to
subscribe to the list. Need to correct this.
Thanks for the pointers, anyway. Will have a look at mingw32/64 !
Best wishes
Jocelyn
>
>>
>>
>> Le 11 sept. 11 à 15:46, Török Edwin a écrit :
>>
>>> On 2011-09-11 16:35, jocelyn.serot@univ-bpclermont.fr wrote:
>>>> Hello,
>>>>
>>>> This may be a trivial question for people working on multiple
>>>> platforms but,
>>>> having worked for a long time only on Unix-like platforms
>>>> (including Mac OS X),
>>>> i'm a bit puzzled..
>>>>
>>>> What is the "best" (simplest both for the programmer and, most
>>>> importantly, the
>>>> end user) way to develop a program in Ocaml in order to
>>>> distribute it to people
>>>> having only MS Windows platforms ?
>>>>
>>>> Is it possible to cross-compile (from what i've read, no) ?
>>>
>>> mingw32-ocaml can cross-compile, Debian and Fedora includes it.
>>
>> Ok. But since i'm running MacOS X, this means that i'll have to
>> reboot under Debian/Fedora Linux (or run it using VB).
>
> Sorry I don't have a Mac OS X to give more detailed instructions,
> maybe someone else on this list can help.
>
> Try compiling OCaml with mingw32 on your Mac (see mingw.org and http://mingw-w64.sourceforge.net/)
> ,
> or find a pre-packaged cross-compiler for Mac (in the ports?).
>
> If you try to build a cross-compiler yourself you might need to
> patch OCaml, AFAIK
> Debian has to patch upstream OCaml to make it build with mingw32
> cross-compiler.
> Have a look at the mingw32-ocaml-3.12.0+debian3/debian/patches
> directory:
> ftp://ftp.debian.org/debian/pool/main/m/mingw32-ocaml/mingw32-ocaml_3.12.0+debian3.tar.gz
>
>>
>>> You'll need to cross-compile all the OCaml (and native) libs you
>>> use though (Fedora might provide pre-cross-compiled libs, not sure).
>>>
>>> Unfortunately there doesn't seem to be an easy way to cross-
>>> compile for Win64 in Debian
>>> (might be possible if an mingw-w64-ocaml package is created based
>>> on mingw-w64), but 32-bit
>>> executables run just there too.
>>
>> Windows XP is 32b and Seven is 64b, aren't they ?
>
> There is a 64-bit version of XP (although less popular), and there
> is a 32-bit version of Win7 too.
> The 64-bit version can run 32-bit apps just fine though.
>
>>
>>>
>>>>
>>>> Do i have to install a ocaml distribution on a machine running
>>>> windows, compile
>>>> my program with the installed tools (ocamlc/ocamlopt) and
>>>> distribute the
>>>> resulting .exe ?
>>>
>>> That'd work of course, but you have the inconvenience of booting
>>> windows everytime.
>>>
>>>>
>>>> Aux question : In the Unix version, arguments are passed on the
>>>> command line. I
>>>> understand that the same can be done under Windows using some
>>>> kind of "shell"
>>>> (under Cygwin). But this may be disruptive to many Windows users
>>>> who are used
>>>> to the "click to launch" approach. Is there some kind of tool
>>>> that could
>>>> automatically wrap a command-line-based app into a click-to-
>>>> launch app (with
>>>> some additionnal pop-ups to enter arguments for ex) ?
>>>
>>> Not that I know of, but one could be written using ocaml-win32 (or
>>> lablgtk).
>>
>>> Is your app purely console based otherwise, or does its Unix
>>> version have a GUI?
>>
>> Purely console-based for now, but writing a GUI should not be too
>> difficult.
>>
>>>
>>>>
>>>> Sorry if these questions sound trivial but despite a long
>>>> experience in Ocaml
>>>> programming (>15 yrs), i've never been exposed to sw dev under
>>>> windows (in fact
>>>> i deliberately avoid this terrain ;)
>>>>
>>>> Btw, for those interested, the program i'm trying to port is a
>>>> compiler
>>>> generating VHDL code for FPGAs from high-level actor-dataflow
>>>> descriptions
>>>> (more info here :
>>>> http://wwwlasmea.univ-bpclermont.fr/Personnel/Jocelyn.Serot/caph.html)
>>>> .
>>>> For the moment, i'm distributing a bytecode but this requires the
>>>> target
>>>> audience to have a ocaml distrib installed on their machine
>>>> (which, from
>>>> experience, most of them view it as an hindrance).
>>>
>>> Does that mean that you don't use 3rdparty libs, or only use
>>> ones that can be compiled to pure bytecode (without native code)?
>>> If so cross-compiling with mingw32-ocaml should work fairly well.
>>
>> The app only uses libs from the ocaml distrib (unix.cm[x]a and
>> dynlink.cm[x]a).
>>
>>>
>>> Another alternative would be to distribute ocamlrun.exe alongside
>>> your program.
>>>
>>
>> Good idea. Can i do this (i mean, is it allowed by the licence
>> conditions) ?
>
> IANAL, but I think you can distribute ocamlrun.exe under the terms
> of the OCaml license:
> http://caml.inria.fr/ocaml/license.en.html,
> and distribute the bytecode itself under your own license.
>
> Of course bytecode is slower than native, so getting cross-
> compilation working somehow might still be worth it.
>
> Best regards,
> --Edwin
next prev parent reply other threads:[~2011-09-11 16:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-11 13:35 jocelyn.serot
2011-09-11 13:46 ` Török Edwin
[not found] ` <987A8AE7-1A72-4C79-A0E2-1C1413B26E16@wanadoo.fr>
[not found] ` <4E6CC8C8.9030001@gmail.com>
2011-09-11 16:41 ` Jocelyn Sérot [this message]
2011-09-11 18:07 ` Dmitry Grebeniuk
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=09FF4221-23ED-41A3-982E-3E9CEC6BE09C@wanadoo.fr \
--to=jocelyn.serot@wanadoo.fr \
--cc=caml-list@inria.fr \
--cc=edwintorok@gmail.com \
/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