caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Ocamlbuild question
@ 2009-02-11 22:26 Matthieu Dubuget
  2009-02-12 16:00 ` [Caml-list] " Nicolas Pouillard
  0 siblings, 1 reply; 11+ messages in thread
From: Matthieu Dubuget @ 2009-02-11 22:26 UTC (permalink / raw)
  To: caml-list

Hello,

I'm trying to manage "internal" camlfind packages. I use "internal" with
the same meanning than in ocamlbuild documentation when speaking about
libraries.

I want my camlfind packages to be re-installed if one of their
dependency was modified. For this, I wrote a simple rule, based on
%.iocamlfind files containing the files to install into findlib
directory. This rule also produces a stamp file : %.oocamlfind.

I also want my camlfind package to be installed if they are needed by
another rule. For this, I do: dep ["pkg_"^nm][nm ^ ".oocamlfind"] for
each internal package.

It seems to work ok: Suppose that package toto requires package tutu.
When I ask ocamlbuild toto.oocamlfind, the packages tutu is re-built if
needed. And if I modify one file of tutu, and then ask ocamlbuild to
generate toto.oocamlbuild, tutu is re-built and installed into findlib
directories. fine.

BUT, when I'm producing a %.native from %.cmx, my dependencies (ie
%.oocamlfind files) are inserted in the command line...

Here is an example:
ocamlfind ocamlopt -linkpkg -package mtsvrac -package log
logtest/test.cmx mtsvrac.oocamlfind log.oocamlfind -o logtest/test.native

mtsvrac.oocamlfind and log.oocamlfind where added to the dependencies of
logtest/test.native.

What would be the right solution to avoid this problem?
Is there something like a "dependency that should not be linked?"

Thanks

Salutations

Matt



^ permalink raw reply	[flat|nested] 11+ messages in thread
* OCamlBuild question
@ 2008-09-30  7:27 David Teller
  2008-09-30 10:40 ` Nicolas Pouillard
  0 siblings, 1 reply; 11+ messages in thread
From: David Teller @ 2008-09-30  7:27 UTC (permalink / raw)
  To: OCaml; +Cc: Nicolas Pouillard

	Hi everyone,
I'm trying to write a OCamlBuild plug-in to automatically generate
the .mli corresponding to a .mlpack (for documentation purposes).

I've written a [rule] which lets me depend a .mli on the
corresponding .mlpack .  From this .mlpack, I can obtain the list of
modules involved in the construction of the pack. Now, I only have to
1. find the corresponding source .mli files
2. find the corresponding .mli.depends files
3. do a topological sort and create the destination .mli .

Part 3 is no problem. On the other hand, I haven't been able to progress
much with parts 1 and 2. 

Part 2 requires waiting until the corresponding .mli.depends have been
created, but 
* neither [~insert:`bottom] nor [~insert:(`after foo)] seem to help here
* attempting to [build] an ad-hoc list of files somehow extracted from
the mlpack only gives me dependency errors
* attempting [Solve.solve_target] doesn't seem to help any further.

As for part 1, it requires the ability to find which source .ml / .mli
correspond to a given module. I can only assume OCamlBuild offers some
kind of API for this purpose, because I'd rather avoid folding through
the whole tree, resolving [include] directives myself to find a .ml or
a .mli which may be the right file.

Does anyone have suggestions?

Thanks,
 David
-- 
David Teller-Rajchenbach
 Security of Distributed Systems
  http://www.univ-orleans.fr/lifo/Members/David.Teller
 Angry researcher: French Universities need reforms, but the LRU act brings liquidations. 


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2009-02-16 13:07 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-11 22:26 Ocamlbuild question Matthieu Dubuget
2009-02-12 16:00 ` [Caml-list] " Nicolas Pouillard
2009-02-12 17:32   ` Matthieu Dubuget
2009-02-12 18:33     ` Matthieu Dubuget
2009-02-13 10:56       ` Matthieu Dubuget
2009-02-13 16:06         ` Matthieu Dubuget
2009-02-16 13:07           ` Matthieu Dubuget
  -- strict thread matches above, loose matches on Subject: below --
2008-09-30  7:27 OCamlBuild question David Teller
2008-09-30 10:40 ` Nicolas Pouillard
2008-09-30 14:49   ` David Teller
2008-09-30 15:12   ` David Teller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).