xenial (1) eliomcp.1.gz

Provided by: eliom_4.2-2_amd64 bug

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

       eliomdoc [options] files

       eliompp [-client|-server] 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. It makes the assumption
       that server-side compiled modules of OCaml files located in  this  directory  subtree  are  in  directory
       _server  (with  same  subdirectories  structure)  (resp.  in  directory  _client for client-side compiled
       modules).

       eliompp (EXPERIMENTAL) is a preprocessor which remove specific sections, depending on the  given  option.
       The  option  -client  will remove all the top-level parts and server sections and the option -server will
       remove only the client sections.

       eliomdoc (EXPERIMENTAL) is a wrapper around the OCaml documentation generator ocamldoc.  It allows you to
       generate  documentation  from  client or server side. It accepts the same set of option than ocamldoc(1).
       It  automatically  extracts  the  commentaries  from  the  desired  sections.   eliomdoc   is   currently
       experimental,      and      you      could      find      some      undefined      behaviours.       (see
       http://ocsigen.org/eliom/manual/workflow-compilation). Some well known bugs are:

       •      your files should always begin with a value and not with a comment. Otherwise, camlp4 won't output
              the commentaries.

       •      sometimes,  comment  node  are  not attached as expected. That's because camlp4 (sometimes) remove
              extra new line between value elements.

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

       -eliom-inc <dir> Add <dir> to the list of eliom include directories (eliomdep only).

       -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.

       -no-autoload
              Do not load commonly used syntax extensions (deriving, lwt, js_of_ocaml, tyxml).

       -type-conv
              Use  type_conv  syntax extensions instead of deriving one. It has no effect if used in conjunction
              with -no-autoload.

       -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>.

       eliomdoc was written by Charly Chevalier <charly.n.chevalier@gmail.com>.

       This manual page was written by Pierre Chambart <chambart@crans.org>.

                                                   2012-02-15                                          ELIOMC(1)