From mboxrd@z Thu Jan 1 00:00:00 1970 X-Sympa-To: caml-list@inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p8BGg2Vl021142 for ; Sun, 11 Sep 2011 18:42:02 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkUCAATkbE5QDPJ/kGdsb2JhbABBoVyGUgEBAQEJCQ0HFAMjgVIBAQQBDCxBBQsLGAwJGUkBDQYTh3cCArQ9g1qCNGAEmFKMCQ X-IronPort-AV: E=Sophos;i="4.68,364,1312149600"; d="scan'208";a="108519221" Received: from smtp05.smtpout.orange.fr (HELO smtp.smtpout.orange.fr) ([80.12.242.127]) by mail4-smtp-sop.national.inria.fr with ESMTP; 11 Sep 2011 18:41:57 +0200 Received: from [10.0.1.2] ([86.194.13.178]) by mwinf5d52 with ME id XUhw1h0063qVqc603UhwNb; Sun, 11 Sep 2011 18:41:57 +0200 X-ME-engine: default Cc: caml-list@inria.fr Message-Id: <09FF4221-23ED-41A3-982E-3E9CEC6BE09C@wanadoo.fr> From: =?ISO-8859-1?Q?Jocelyn_S=E9rot?= To: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= In-Reply-To: <4E6CC8C8.9030001@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Mime-Version: 1.0 (Apple Message framework v935.3) Date: Sun, 11 Sep 2011 18:41:55 +0200 References: <4E6CBBD1.2000805@gmail.com> <987A8AE7-1A72-4C79-A0E2-1C1413B26E16@wanadoo.fr> <4E6CC8C8.9030001@gmail.com> X-Mailer: Apple Mail (2.935.3) Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p8BGg2Vl021142 X-Validation-by: jocelyn.serot@wanadoo.fr Subject: Re: [Caml-list] Running ocaml programs on Windows 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