Browse thread
Ocamlbuild: could help embedding Ocaml code into shared object?
- Matthieu Dubuget
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2008-06-01 (11:00) |
From: | Matthieu Dubuget <matthieu.dubuget@g...> |
Subject: | Ocamlbuild: could help embedding Ocaml code into shared object? |
I often deliver my work as shared objects (DLL, in fact, because I'm stuck with Windows at work). I would like to have ocamlbuild take care of this, but I don't know exactly how to do it? The idea would be to split the work in two separate rules. The first rule generates a shared object from the Objective Caml code: rule "mloo & cmx* -> native.oo.o" ~dep:"%.mloo" ~prod:"%.native.oo.o" action_for_nativecode rule "mloo & cmo* -> byte.oo.o" ~dep:"%.mloo" ~prod:"%.byte.oo.o" action_for_bytecode The actions should return commands with A "-output-obj". But I do not know how to write them. It would need a mechanism similar to the one used for mlpack. For example, one .mloo file listing the ocaml files to link into the output object. Dynamic dependencies are to be generated from the content of the .mloo file. Unfortunately, I have no idea how to write that? The second rule would generate a shared object from the .o files. Maybe the current clib is enough? I have to add a flag to link the runtime engine by adding -lasmrun -lm -ldl (-lm and -ldl being deduced from the output of ocaml* -config). Am I looking in the right direction? Thanks in advance for your help Matt