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.1 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id ACFFDBC69 for ; Fri, 23 Nov 2007 09:06:17 +0100 (CET) X-IronPort-AV: E=Sophos;i="4.21,455,1188770400"; d="scan'208";a="4814643" Received: from peray.inria.fr (HELO ausone.inria.fr) ([128.93.8.98]) by mail1-relais-roc.national.inria.fr with SMTP; 23 Nov 2007 09:06:17 +0100 Received: by ausone.inria.fr (sSMTP sendmail emulation); Fri, _d Nov 2007 09:05:29 +0100 From: "Nicolas Pouillard" Cc: caml-list Subject: Re: ocamlbuild bug and questions Was: Re: [Caml-list] ocamlbuild: using *.itarget with flags To: viktor.tron.ml References: <8cc3d8520711211051j1d867b32l3c67eea2261bbd4a@mail.gmail.com> <8cc3d8520711220836t26f5ed0ft66e7d9ebf3e8797b@mail.gmail.com> In-Reply-To: <8cc3d8520711220836t26f5ed0ft66e7d9ebf3e8797b@mail.gmail.com> Date: Fri, 23 Nov 2007 09:05:28 +0100 Message-Id: <1195802767-sup-1214@ausone.local> User-Agent: Sup/0.2 Content-Type: text/plain; charset=UTF-8 X-Spam: no; 0.00; bug:01 flags:01 ml's:01 lexing:01 libs:01 ocaml:01 ocaml:01 deps:01 foo:01 cmo:01 ocamlc:01 -output-obj:01 foo:01 cmo:01 cmxa:01 Excerpts from viktor.tron.ml's message of Thu Nov 22 17:36:14 +0100 2007: > On 21/11/2007, Nicolas Pouillard < nicolas.pouillard@gmail.com> wrote: > > > > Excerpts from hmf's message of Wed Nov 21 12:30:28 +0100 2007: > > > The manual states that in the *.itarget > > > files a comment is either a blank or dash. > > > Does this mean: > > > > > > - comment here > > > > > > is a comment? If so, it does not seem > > > to work. > > > > The manual is wrong on that point, it's a sharp (#) not a dash (-). > > > > # comment here > > > > I also noticed that. Plus what seems to be a couple of bugs? > > $ echo -n '# comment here' > _tags > $ ocamlbuild target > Lexical analysis error: Bad key in configuration line at line 1 (from file: > "_tags") Yes your right, comments should end by a new line (I fix that). > or even worse > > $ echo -n '# comment here:' > _tags > $ ocamlbuild target > Failure: lexing: empty token. Yes that's the same one. > Also: I had a number of question concerning ocamlbuild in my recent post > about c libs from ocaml. > I elaborate them here, but see my original post for the context. > Does anyone have an illuminating insight? > > --- > > * I still don't know the most basic thing, how to build an output-obj o > file. That's not "the most basic thing" for the average OCaml programmer I think. Ocamlbuild don't have such a rule by default (I think it will). However define your own custom rule is really feasible. (* something like that, but I've not tested *) rule "the rule name" ~deps:["foo.cmo"; "libbar.a"(*...*)] ~prods:["obj.o"(*...*)] begin fun _ _ -> Cmd(S[V"OCAMLC"; A"-output-obj"; A"-o"; Px"obj.o"; P"foo.cmo"; P"libbar.a"(*...*)]) end; > * I found no way to convince ocamlbuild to use the local library (in this > example we build > ocamlbuild foo.cmxa > and then would simply want > ocamlopt -o foo foo.cmxa foo_wrapper.ml > but 'ocamlbuild foo_wrapper.native' rebuilds it all the same in the myocamlbuild.ml you have to declare the library: ocaml_lib "foo" and in the _tags file: "foo_wrapper.native": use_foo > * I don't know what the possible tags are, how I add them. They are implicitly declared, for instance if you add: flag ["ocaml"; "link"; "byte"; "mytag"] (S[A"-cclib"; A"mycopt"]); You can then tag some .byte files with mytag, -cclib mycopt flags will be added at link time. > * If I use a syntax extension which has to be build, adding the pp... tag > does not create a dependency which is checked. I don't know how to add this > dependency. Use a dep declaration with same tags and then files that needs to be built. dep ["ocaml"; "pp"; ...] ["myextension.cmo"] > Help appreciated, but probably a more detailed manual will solve > this with time. The wiki [1] talk about using syntax extension. [1]: http://brion.inria.fr/gallium/index.php/A_plugin_for_camlp4_syntax_extension_%28pa_openin%29 -- Nicolas Pouillard aka Ertai