8.10.2 ede-compiler

Inheritance Tree:
eieio-instance-inheritor
ede-compilation-program

See ede-compilation-program.

ede-compiler
Children:

See ede-object-compiler, semantic-ede-grammar-compiler-class.

Create a new object with name NAME of class type ede-compiler

Slots:
:parent-instance

Type: eieio-instance-inheritor-child

The parent of this instance. If a slot of this class is reference, and is unbound, then the parent is checked for a value.

:name

Type: string

Name of this type of compiler.

:variables

Type: list

Variables needed in the Makefile for this compiler. An assoc list where each element is (VARNAME . VALUE) where VARNAME is a string, and VALUE is either a string, or a list of strings. For example, GCC would define CC=gcc, and emacs would define EMACS=emacs.

:sourcetype

Type: list

A list of ede-sourcecode See ede-sourcecode. objects this class will handle. This is used to match target objects with the compilers and linkers they can use, and which files this object is interested in.

:commands

Type: list

The commands used to execute this compiler. The object which uses this compiler will place these commands after its rule definition.

:objectextention

Type: string

A string which is the extension used for object files. For example, C code uses .o on unix, and Emacs Lisp uses .elc.

:makedepends

Type: boolean
Default Value: nil

Non-nil if this compiler can make dependencies.

:uselinker

Type: boolean
Default Value: nil

Non-nil if this compiler creates code that can be linked. This requires that the containing target also define a list of available linkers that can be used.

8.10.2.1 Specialized Methods

Method: ede-proj-makefile-insert-object-variables :AFTER this targetname sourcefiles

Insert an OBJ variable to specify object code to be generated for THIS. The name of the target is TARGETNAME as a string. SOURCEFILES is the list of files to be objectified. Not all compilers do this.

Method: ede-compiler-intermediate-objects-p :AFTER this

Return non-nil if THIS has intermediate object files. If this compiler creates code that can be linked together, then the object files created by the compiler are considered intermediate.

Method: ede-compiler-intermediate-object-variable :AFTER this targetname

Return a string based on THIS representing a make object variable. TARGETNAME is the name of the target that these objects belong to.