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:
- Unpack the archive where you would like to store the binaries ( /usr/local for instance)
- A directory called "cecilia-framework-2.1.0" will be created.
- Add the bin sub-directory to your PATH environment variable
- Make sure that the JAVA_HOME environment variable is set to the location of your JRE of JDK.
- 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"