Fractal | Fractal ADL | Cecilia Examples | Minus
 

Overview

This page describes how to obtain a binary distribution of the Cecilia compiler, and how to use it from the command line or from a Makefile.

The Cecilia compiler can also be integrated in a Maven build. For details on how to use the Cecilia with Maven see the Cecilia Maven Facilities page.

Downloading the Cecilia ADL Binary Distribution

Please visit the download page.

Installing the ceciliac compiler:

  1. Unpack the archive where you would like to store the binaries ( /usr/local for instance)
  2. A directory called "cecilia-framework-2.1.0" will be created.
  3. Add the bin sub-directory to your PATH environment variable
  4. Make sure that the JAVA_HOME environment variable is set to the location of your JRE of JDK.
  5. Run ceciliac to verify that it is correctly installed.

Running the ceciliac compiler

The ceciliac compiler compiles a given architecture definition file. It is used with the following command-line arguments:

$ ceciliac [OPTIONS] (<definition>[:<execname>])+

where definition is the name of the component to be compiled, and execname is the name of the output file to be created.

Available options are :

  • -h, --help

    Print help message and exit.

  • -S=path list, --src-path=path list

    Specify the search path of ADL,IDL and implementation files in a classpath-like format (see bellow for detail). This option may be specified several times.

  • -o=output path, --out-path=output path

    Specify the path where generated files will be put (default is current working directory). The given directory must exist prior the execution of ceciliac.

  • -compiler-adl=adl name

    Specify the name of the ADL of the compiler itself (advance usage).

  • -t=name, --target-descriptor=name

    Specify the target descriptor. See target-descriptor page for details on how to define new target descriptors.

  • -compiler-command=path

    Specify the command of the C compiler (default is gcc).

  • -c=flags, --c-flags=flags

    Specify the c-flags compiler directives. This option may be specified several times.

  • -I=path list, --inc-path=path list

    Specify the list of path to be added in compiler include paths in a classpath-like format. This option may be specified several times.

  • -linker-command=path

    Specify the command of the linker (default is gcc).

  • -l=flags, --ld-flags=flags

    Specify the ld-flags compiler directives. This option may be specified several time.

  • -L=path list, --ld-path=path list

    Specify the list of path to be added linker library search path in a classpath-like format. This option may be specified several time.

  • -a=path, --archiver-command=path

    Specify the command of the archiver tool (default is ar).

  • -T=path, --linker-script=path

    Specify the linker script to use. The script is searched in the compiler source-path.

  • -executable-name=name

    Specify the name of the target executable file (can be used only if one and only one ADL is specified).

  • -j=number, --jobs=number

    Specify the number of concurrent compilation jobs (default is 1).

  • -e

    When an error occurs, print stack traces.

  • --check-adl

    Only check input ADL(s), do not compile.

Classpath-like format

Some options like src-path or ld-path take as value, a list of path in a classpath-like format. This is a list of path separated by ";" on Windows and by ":" on Linux/Unix.

For instance:

on Windows

c:\work\dir1;c:\work\dir2

and on Linux/Unix

/work/dir1:/work/dir2

Setting the verbosity level of the ceciliac compiler

Use the CECILIA_OPTS environment variable to specify verbosity level.

For instance, to use FINE level for console messages and FINER for messages dumped in log file, use:

$ set CECILIA_OPTS=-Ddefault.console.level=FINE -Ddefault.file.level=FINER

See FractalADLLogManager javadoc for more details.

Addition of extension modules to the ceciliac compiler

Set the CECILIA_CLASSPATH environment variable to include the .jar files or the classes of the extension module(s).

$ export CECILIA_CLASSPATH="MyModule1.jar:MyModule2.jar"

or

$ set CECILIA_CLASSPATH="MyModule1.jar;MyModule2.jar"
 
2007-2009 © ObjectWeb Consortium  | Last Published: 2009-04-21 13:48  | Version: 2.1.0