PR# 3684 Better command line behaviour from ec and finish_freezing

Problem Report Summary
Submitter:
Category: Compiler
Priority: High
Date: 2004/02/24
Class: Feature Request
Severity: Serious
Number: 3684
Release: 5.1-5.4
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
Synopsis: Better command line behaviour from ec and finish_freezing

Description
This change request is written from the perspective of incorporating Eiffel compilation in make/build scripts. More specifically I am writing a tool definition for ISE Eiffel for the Scons make-tool (See: http://www.scons.org/).

ec return codes and stdout/stderr output
----------------------------------------

1) ec should always exit with a return code > 0 if the compilation failed. 

2) ec should always write all compilation aborted messages to stderr.

3) ec should always write all error messages to stderr.

4) ec should always write all warning messages to stdout.

Specifically this means that an eiffel compilation that is successful could exit with a return code of 0 after writing a set of warnings to stdout.

finish_freezing return codes and stdout/stderr output
-----------------------------------------------------

1) finish_freezing should always exit with a return code > 0 if the C compilation or linking failed. 

2) finish_freezing should always write all compilation/linking aborted messages to stderr.

3) finish_freezing should always write all error messages to stderr.

4) finish_freezing should always write all warning messages to stdout.

--silent option for ec and finish_freezing
-----------------------------------------

Add a command line option --silent for ec so that compilation progress output 
is supressed.

Add a command line option --silent for finish_freezing so that only errors and warnings from the C compiler and/or linker are output (to stderr).

options to ec for listing used files and environment variables
--------------------------------------------------------------

Add the following set of options to ec:

--eiffel-files          List all Eiffel files (.e) needed by the system.
                        Note this is not = classes! All files containing
                        at least one class that is in the universe of the
                        system. File names should be listed using the same
                        environment variables used in the Ace-file. 

--include-files         List all C header files used in external clauses.
                        File names should be listed using the directories 
                        and environment variables used in the Ace-file (ie.
                        in the external/include part of the Ace-file).                         

--object-files          List all static/dynamic libraries listed in the Ace
                        file. File names should be listed using the directories 
                        and environment variables used in the Ace-file (ie.
                        in the external/object part of the Ace-file).                        

--environment-variables List all environment variables used in the Ace-file.
                        This makes it easy for build scripts to check for
                        (and check the value) of needed environment variables
                        before attempting to compile

The three --xxx-files options are crucial for:

  * establishing actual file dependencies.

  * enabling correct labling of files in VSS/CVS for release builds of a 
    given system.
To Reproduce

										
Problem Report Interactions
From:    Date:2004/02/24    Download