NAME¶
eliomc, eliomcp, eliomopt, js_of_eliom, eliomdep - the eliom build tools
SYNOPSIS¶
eliomc [
options] files
eliomcp [
options] files
eliomopt [
options] files
eliomdep [
options] files
js_of_eliom [
options] files -o filename.js
DESCRIPTION¶
eliomc, eliomcp and
eliomopt are wrapper around the OCaml
compiler that ease the compilation of the server part of projects based on the
Eliom framework. They respectively accept the same set of option than the
ocamlc(1),
ocamlcp(1) and
ocamlopt(1) compilers plus the
specific ones described in the
OPTIONS section.
js_of_eliom is a wrapper around the OCaml and Js_of_ocaml compilers that
ease the compilation of the client part of projects based on the Eliom
framework. It accepts the same set of option than the
ocamlc(1)
compiler plus the specific ones described in the
OPTIONS section.
eliomdep is a wrapper around
ocamldep(1) that handles dependencies
of an .eliom source files. It accepts the same set of options plus the
specific ones described in the
OPTIONS section. Warnings: this tools is
still limited and do not handle dependencies towards an .eliom files.
COMPILING ELIOM SOURCE FILES¶
The compilation of files with a .eliom extension is achieved in three steps:
infer the type of value sent by the server to the client; compile the server
part of the code and compile the client part. The first two steps can be
realised with
eliomc and the last one with
js_of_eliom.
Both tools produce a .cmo file named as the original .eliom file. To avoid
overwriting the .cmo representing the server part with .cmo of the client
part, files generated by
eliomc or
eliomopt are stored
by default in a subdirectory named _server and files generated by
js_of_eliom are stored in a subdirectory named _client. Those default
directories could be respectively overridden by the environment variables
ELIOM_SERVER_DIR and ELIOM_CLIENT_DIR.
The types infered by
eliomc for values sent by the server to the client
are stored in an intermediate files named as the original .eliom file and
whose extension is .type_mli. That file is required by
js_of_eliom for
compiling the client part of the .eliom file. The
eliomdep tool
correctly generate dependencies that intermediate file for the server .cmo and
the client .cmo.
OPTIONS¶
- -dir <dir>
- Specify the target directory for generated files
- -package <name>
- This is the same option as the ocamlfind one.
- -predicates <p>
- This is the same option as the ocamlfind one.
- -ppopt <opt>
- Append <opt> to preprocessor invocation.
- -jsopt <opt>
- Append <opt> to js_of_ocaml invocation (js_of_eliom
only).
- -infer <opt>
- For .eliom file, only generate the intermediate .type_mli
file (eliomc and eliomopt only).
- -noinfer <opt>
- For .eliom file, do not generate the intermediate .type_mli
file (eliomc and eliomopt only).
- -help or --help
- Display a short usage summary and exit.
EXAMPLES¶
The compilation of an Eliom projects composed of a server specific file named
server.ml, a client specific file named client.ml and two common files name
base.eliom and main.eliom, could be achieved with the following commands:
eliomc -a -o appl.cma server.ml base.eliom main.eliom
js_of_eliom -o appl.js client.ml base.eliom main.eliom
To avoid recompiling the whole project each times, this could be split in
multiple steps:
eliomc -c server.ml
eliomc -c base.eliom
eliomc -c main.eliom
eliomc -a -o appl.cma _server/server.cmo
_server/base.cmo _server/main.cmo
js_of_eliom -c client.ml
js_of_eliom -c base.eliom
js_of_eliom -c main.eliom
js_of_eliom -o appl.js _client/client.cmo
_client/base.cmo _client/main.cmo
SEE ALSO¶
ocamlc(1),
ocamlopt(1),
js_of_ocaml(1),
ocamlfind(1),
ocamlcp(1),
ocamldep(1).
AUTHOR¶
eliomc, js_of_eliom, eliomdep and eliomopt were written by Gregoire Henry
<gregoire.henry@pps.jussieu.fr>.
This manual page was written by Pierre Chambart
<chambart@crans.org>.