Auto Compiler Personality Generator 2.0.3

 

Description

The Auto Compiler Personality Generator utility will create a compiler personality file. The GUI utility (AutoCmpPersonGen.exe) provides an interface for the parameters as listed in the below table.

 

If you discover that there are still Level 9 Syntax errors encountered during your analysis when using a personality file generated by this utility, please make a note of the error and your compiler and notify support@programmingresearch.com.

 

The Auto Compiler Personality Generator is typically run in GUI mode rather than as a command line tool.

However the command line tool (AutoCmpGen.exe) can be run with the following arguments:

 

Command line options

<Product>

Mandatory

Specifies the product for which the personality will be created. qac | qacpp

<cross compiler>

Mandatory

Specifies whether the compiler is a cross compiler or not. ccmp | cmp (cross-compiler|compiler)

<compiler command>

Mandatory

Specifies the command required to invoke the compiler from the command line.

<compiler output flag>

Mandatory

Specifies the flag used by the compiler to denote output to a file. For example in gcc:

gcc –otest.exe test.cpp is a typical output command

<compiler object flag>

Mandatory

Specifies the flag used by the compiler to produce and object file. For example in gcc:

gcc –c test.cpp is a typical object command

<define flag>

Mandatory

Specifies the flag used by the compiler to define a macro/define on eth command line. For example in gcc: gccdXXX=1 is a typical define flag

<object file extension>

Mandatory

Specifies the extension of the object file produced by the compilation process. Note a compiler may produce multiple files after compilation. For example: .obj or .o is a typical object file extension.

<compile command order>

Mandatory

Specifies the order of the flags specified to the compile command in the form of:
%c – compile command
%o – output flag
%j – object flag
%d – define flag
%s – src file

%e – executable file
For example in gcc the order would typically be:

“%c %j %d %o %e %s”
Note that the spaces between the elements dictate whether or not a space is required after the flag.

-i <search directory>

Mandatory

Specifies the starting level directory for all system includes (note this could be a list, although the tool will recurse into these directories so sub directories are not required to be listed). For the best results add the compiler bin directory to the list to include the compiler binaries.

-op <output location>

Optional

Specifies the location at which to create the personality.  If no name is specified, it defaults to C:\temp\AutoCmpPerson.p_c or /tmp/AutoCmpPerson.p_c.

-xd <external compiler define>

Optional

A set of compiler defines external to the header files that could affect/determine compilation of test files. These can either be comma separated (eg ONE,TWO=2) or line delimited.

-xs <external compiler switch>

Optional

A set of compiler switches utilized when invoking the compiler that could affect/determine compilation of test files. These can either be comma separated (eg ONE,TWO=2) or line delimited.

-tpl <template personality file>

Optional

Specify a template personality file to use as the basis for the generated personality. Any settings inside the template file will be copied to the generated personality.

-fi <force include file>

Optional

Specify a force include file required for the compiler in question. The generated personality will contain an entry to link to this force include file.

-sub <substitute header directory>

Optional

Specify a directory containing any required substitute headers for the compiler in question. The generated personality will contain an include path entry to this directory before all other system includes.

-rfs

Optional

“Reduce File Size”. Specify this option to ensure that the generator does not produce overly large test files during execution. This will increase the time taken to produce a personality, but prevent compiler crashes due to number of pre-processor statements or declarations of variables inside files.

 

Change History

Version 2.0.3

Improved options under saved compiler menu for Code Warrior, IAR and others. Resolved bug in batch file production and error code reading.

Version 2.0.2

Resolved output of defines containing spaces that were not correctly quoted.

Version 2.0.1

Registry entry improvement to denote installed location.

 

Additional support for errno usage on linux for C based gcc runs.

 

Bug fix for Destination dialog clearing the edit field on cancel click.

Version 2.0

Added support for Reduce File Size option, fixed issue with QAC++ mode generation of personality regarding definition of “std”. Re-organised wizard pages to ensure most important fields come first. Support for preconfigured compiler list.

Version 1.1

Added Compiler/Exe Command selection interface and the ability to specify an optional template personality, an optional force include file and an optional substitute headers directory.

Version 1.0

Initial version of the Auto Compiler Personality Generator.