Interactive
Software Engineering
Command-line Tools

[ISE Home] Home ] Release Notes ] Technology Papers ] Installation Notes ] About Eiffel ]


Eiffel batch compiler - es4

Usage:
	es4 [-help | -version | -batch -freeze | -finalize [-keep] | -precompile |
	-loop | -quick_melt | -clients [-filter filtername] class |
	-suppliers [-filter filtername] class |
	-flatshort [-filter filtername] [-all | -all_and_parents | class] |
	-flat [-filter filtername] [-all | -all_and_parents | class] |
	-short [-filter filtername] [-all | -all_and_parents | class] | 
	-filter filtername [-all | class] |
	-descendants [-filter filtername] class |
	-ancestors [-filter filtername] class |
	-aversions [-filter filtername] class feature |
	-dversions [-filter filtername] class feature |
	-implementers [-filter filtername] class feature |
	-callers [-filter filtername] [-show_all] class feature |
	[-stop] [-ace Ace] [-project Project_file_name]|
	[-project_path Project_directory_path] [-file File]]

Options:
	default (no option): recompile the system.

	-ace: specify the Ace file.
	-ancestors: show the ancestors of a class.
	-aversions: show the ancestor versions of a feature.
	-batch: launch the compilation without user request.
	-callers: show the callers of a feature.
	-clients: show the clients of a class.
	-descendants: show the descendants of a class.
	-dversions: show the descendant versions of a feature.
	-file: save the output to a file.
	-filter: show a filtered form (troff, ...) of the class text.
	-finalize: finalize the system (discard assertions by default).
	-flat: show the flat form of a class.
	-flatshort: show the flat-short form of a class.
	-freeze: freeze the system.
	-help: show this help message.
	-implementers: show the classes implementing a feature.
	-loop: run es4 as a command loop.
	-precompile: precompile the system.
	-project: specify the project file to load.
	-project_path: specify the compilation directory.
	-quick melt: quick melt the system.
	-short: show the short form of a class.
	-stop: stop on error.
	-suppliers: show the suppliers of a class.
	-version: show compiler version number.
For example:
  • to freeze a project from scratch: es4 -project_path /your_path -ace my_ace.ace
  • to freeze an existing project: es4 -project your_project.epr -freeze
  • to finalize a project from scratch: es4 -finalize -project_path /your_path -ace my_ace.ace

 

finish_freezing

On Unix there is no special options for finish_freezing, on Windows they are only two:

  • -location location_path: enables to launch `finish_freezing' on a remote directory.
  • -silent: does not prompt the user with the message box where the status of the C compilation appears.

 

Batch compilation

Since the introduction of ISE EiffelBench 4.3, you can do some batch processing on Windows. Until then it was only possible on Unix platforms. With the introduction of ISE EiffelBench 4.5 new options has been added (see above for a list of options).

In order to launch a compilation without user intervention you need to specify the `-batch' switch in the `es4' command line, otherwise the Eiffel compilation will be blocked. We will present below a typical example of batch processing on both Unix and Windows platforms where we want to compile a project in both frozen and finalized mode, then to launch the C compilations. At the same time we want to save the output of `es4' and the C compilations.

 

Unix

In a file called `launch_es4' you can have the following:

#!/bin/sh

output_file="/output_path/OUTPUT"

cd /your_project_path

#Launch Eiffel compilation
es4 -batch -ace Ace.ace -finalize 2> $output_file

#Launch C compilation for frozen code
cd EIFGEN/W_code
finish_freezing > $output_file

#Launch C compilation for finalized code
cd EIFGEN/F_code
finish_freezing > $output_file

It will go the directory where your project is located and compile your Eiffel code using the `Ace.ace' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `/output_path/OUTPUT'.

Note: All output from `es4' are going to the error output, so do not forget to redirect the error output when you want to see the results

 

Windows

In a file called `launched_es4.bat' you can have the following:

 

cd C:\your_project_path

#Launch Eiffel compilation
es4 -batch -ace Ace.ace -finalize > c:\output_path\OUTPUT

#Launch C compilation for frozen code
cd EIFGEN\W_code
finish_freezing > c:\output_path\OUTPUT

#Launch C compilation for finalized code
cd EIFGEN\F_code
finish_freezing > c:\output_path\OUTPUT

It will go the directory where your project is located and compile your Eiffel code using the `Ace.ace' file located in your project directory and compile automatically the C code. All outputs will be stored in the file `c:\output_path/OUTPUT'.