Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Martin Jambon <martin_jambon@emailuser.net>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] ocamlfind + ocamldep + camlp4?
Date: Tue, 06 Dec 2005 09:10:03 +0100	[thread overview]
Message-ID: <1133856603.5990.48.camel@localhost.localdomain> (raw)
In-Reply-To: <Pine.LNX.4.63.0512051339110.7165@munge>

Am Montag, den 05.12.2005, 14:08 -0800 schrieb Martin Jambon:
> Hello,
> 
> I would like to know if there is a way of using ocamlfind as front-end to 
> camlp4o alone. Let me explain: the following works nicely since it will 
> locate the pa_someext package and load its dependencies:
> 
>    ocamlfind ocamlc -c -syntax camlp4o -package pa_someext file.ml
> 
> but how to tell ocamldep to preprocess file.ml using camlp4o and the
> wanted syntax modules, without listing all the include directories and 
> dependencies?

Why not

ocamlfind ocamldep -syntax camlp4o -package pa_someext *.ml

?

You can also get the options for camlp4o using:

P4_PKG = "pa_someext"
P4_I_OPTIONS = $(shell ocamlfind query -predicates "syntax,preprocessor,camlp4o" \
                 $(P4_PKG) -i-format)
P4_A_OPTIONS = $(shell ocamlfind query -predicates "syntax,preprocessor,camlp4o" \
                 $(P4_PKG) -a-format)

then

camlp4 $(P4_I_OPTIONS) $(P4_A_OPTIONS)

should work.

Gerd

> 
> OCamlMakefile solves this by reading the first line of the OCaml files. 
> That works, but ocamlfind doesn't help here, so all directories of the 
> camlp4 extensions (direct + dependent) must be specified, which is 
> impractical. That would be something like:
> (*pp ./pp-command *)
> 
> where pp-command would be:
> #!/bin/sh
> camlp4o
>      -I /path/to/lib1 lib1.cma \
>      -I /path/to/lib2 lib2.cma \
>      -I /path/to/pa_someext pa_someext.cmo $*
> 
> where lib1 and lib2 are required by pa_someext.
> 
> Instead, it would be nice to write only:
> 
> (*pp ocamlfind camlp4o -package pa_someext *)
> 
> 
> Thanks,
> 
> Martin
> 
> --
> Martin Jambon, PhD
> http://martin.jambon.free.fr
> 
> Store and share your bioinformatics tips at http://wikiomics.org
> 
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
> 
-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
Telefon: 06151/153855                  Telefax: 06151/997714
------------------------------------------------------------


  parent reply	other threads:[~2005-12-06  8:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-05 22:08 Martin Jambon
2005-12-06  8:00 ` [Caml-list] " Alain Frisch
2005-12-06  8:10 ` Gerd Stolpmann [this message]
2005-12-06 21:33   ` Martin Jambon

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=1133856603.5990.48.camel@localhost.localdomain \
    --to=info@gerd-stolpmann.de \
    --cc=caml-list@inria.fr \
    --cc=martin_jambon@emailuser.net \
    /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