Version française
Home     About     Download     Resources     Contact us    
Browse thread
ocamlfind + ocamldep + camlp4?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Gerd Stolpmann <info@g...>
Subject: Re: [Caml-list] ocamlfind + ocamldep + camlp4?
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
------------------------------------------------------------