Next: ede-compiler, Up: Compilers

#### 7.8.1 ede-compilation-program

Inheritance Tree:
  `eieio-instance-inheritor`
    `ede-compilation-program`
      Children:
        See ede-compiler, See ede-linker.

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.

  `:rules`
    Type: `list`
    Default Value: `nil`

    Auxiliary rules needed for this compiler to run. For example, yacc/lex files need additional chain rules, or inferences.

  `:commands`
    Type: `list`

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

  `:autoconf`
    Type: `list`
    Default Value: `nil`

    Autoconf function to call if this type of compiler is used. When a project is in Automake mode, this defines the autoconf function to call to initialize automake to use this compiler. For example, there may be multiple C compilers, but they all probably use the same autoconf form.

  `:objectextention`
    Type: `string`

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

##### 7.8.1.1 Specialized Methods

— Method: ede-proj-flush-autoconf :AFTER this

> Flush the configure file (current buffer) to accomodate THIS.

— Method: ede-proj-makefile-insert-rules :AFTER this

> Insert rules needed for THIS compiler object.

— Method: ede-proj-makefile-insert-variables :AFTER this

> Insert variables needed by the compiler THIS.

— Method: ede-proj-makefile-insert-commands :AFTER this

> Insert the commands needed to use compiler THIS. The object creating makefile rules must call this method for the compiler it decides to use after inserting in the rule.

— Method: ede-object-sourcecode :AFTER this

> Retrieves the slot `sourcetype` from an object of class `ede-compilation-program`

— Method: ede-proj-tweak-autoconf :AFTER this

> Tweak the configure file (current buffer) to accomodate THIS.