From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id C181FBC6F for ; Thu, 9 Aug 2007 20:35:55 +0200 (CEST) Received: from ausone.inria.fr (peray.inria.fr [128.93.8.98]) by discorde.inria.fr (8.13.6/8.13.6) with SMTP id l79IZj8A010915; Thu, 9 Aug 2007 20:35:45 +0200 Received: by ausone.inria.fr (sSMTP sendmail emulation); Thu, _d Aug 2007 20:35:23 +0200 From: "Nicolas Pouillard" Cc: "O'Caml Mailing List" Subject: Re: [Caml-list] ocamlbuild To: skaller References: <1186355977.6523.55.camel@rosella.wigram> In-Reply-To: <1186355977.6523.55.camel@rosella.wigram> Date: Thu, 09 Aug 2007 20:35:23 +0200 Message-Id: <1186684515-sup-5252@ert.local> User-Agent: Sup/0.1.$Revision:$ Content-Disposition: inline Content-Type: text/plain; charset=utf-8 X-j-chkmail-Score: MSGID : 46BB5E81.000 on discorde : j-chkmail score : X : 0/20 1 0.000 -> 1 X-Miltered: at discorde with ID 46BB5E81.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; pathname:01 flags:01 ocaml:01 ocaml:01 cygwin:01 ocamlc:01 parser:01 ocamlc:01 cygwin:01 ubuntu:98 unix:01 unix:01 caml-list:01 executables:01 parentheses:01 Excerpts from skaller's message of Mon Aug 06 01:19:37 +0200 2007: > Does Ocamlbuild work on Windows *transparently*? We tried to do our best at the design step of ocamlbuild to avoid as much as possible problems with windows and especially with pathname quoting. Ocamlbuild helps you to keep your command structured to enforce a correct escaping. But it's still up to the user that customize ocamlbuild (by writing a plugin; this is needed for adding new rules, flags...). There is still problems with some standard rules that use some unix commands. So, ocamlbuild is still partially supported on windows and therefore is not ideal solution for building ocaml code under windows. However we hope that this kind of problems will be solved in a future version. > To do this, it must read filenames written with / in it, > but use filenames with \ replacing the /. I'd say this is > mandatory, so the same build control file will work on > all platforms. Then you need to document that Unix filenames > must be used, even on Windows. > > Note: although *Ocaml* basenames cannot have spaces in them, > the directories that contain them can. So Ocamlbuild must be > sure to quote all filenames, in case they have spaces. > This includes allowing quotes in the input specs. > Unix file systems allow spaces in filenames too, and many > modern Desktops will have 'folders' with spaces in > (if a 'doze or fruit user gets Ubuntu in their office). > > I warn this is a serious PITA if you're building Windows > *Native* code, but hosting the build on Cygwin, because > executables have to use Unix filenames but arguments have > to use Windows filenames, so you have to carefully keep > track of which tool is running what. > > It helps if standard tools translate internally (eg ocamlc). > However any build script has to allow for foreign tools > (eg Felix uses Dypgen as a parser). > > A serious nasty here is if you have to use silly names > on windows for the tools, eg building Felix: > > C:\Program Files (x86)\Ocaml\ocamlc > > and here the spaces, parentheses and C: drive > letter are mandatory and must be handled correctly > as a native filename. On Windows, Ocaml isn't necessarily > even in the path -- because on Windows XP64 I have multiple > Ocaml versions and I need to *specify* which one to use, > no accidents from PATH please! (Well actually, we do use > the PATH but it leads to a mess). > We're aware of that. However if someone have a clear specification of the quoting system on windows (the recomended one at least) and the one used by Cygwin I'm interested. -- Nicolas Pouillard aka Ertai