/**
   * Reset the code generator.
   *
   * @exception IllegalActionException Not thrown in this base class, thrown by the parent if the
   *     container of the model cannot be set to null.
   */
  @Override
  protected void _reset() throws IllegalActionException {
    super._reset();

    _includes.clear();
    _libraries.clear();
  }
 /**
  * Read in a template makefile, substitute variables and write the resulting makefile.
  *
  * <p>If a <code>.mk.in</code> file with the name of the sanitized model name, then that file is
  * used as a template. For example, if the model name is <code>Foo</code> and the file <code>
  * Foo.mk.in</code> exists, then the file <code>Foo.mk.in</code> is used as a makefile template.
  *
  * <p>If no <code>.mk.in</code> file is found, then the makefile template can be found by looking
  * up a resource name makefile.in in the package named by the <i>generatorPackage</i> parameter.
  * Thus, if the <i>generatorPackage</i> has the value "ptolemy.codegen.c", then we look for the
  * resource "ptolemy.codegen.c.makefile.in", which is usually found as <code>
  * $PTII/ptolemy/codegen/c/makefile.in</code>.
  *
  * <p>The makefile is written to a directory named by the <i>codeDirectory</i> parameter, with a
  * file name that is a sanitized version of the model name, and a ".mk" extension. Thus, for a
  * model named "Foo", we might generate a makefile in "$HOME/codegen/Foo.mk".
  *
  * <p>Under Java under Windows, your <code>$HOME</code> variable is set to the value of the <code>
  * user.home</code>System property, which is usually something like <code>
  * C:\Documents and Settings\<i>yourlogin</i></code>, thus for user <code>mrptolemy</code> the
  * makefile would be <code>C:\Documents and Settings\mrptolemy\codegen\Foo.mk</code>.
  *
  * <p>See the parent class {@link
  * ptolemy.cg.kernel.generic.program.ProgramCodeGenerator#_writeMakefile(CompositeEntity, String)}
  * for variable that are substituted by the parent class.
  *
  * <p>This class substitutes the following variables:
  *
  * <dl>
  *   <dt><code>@PTCGIncludes@</code>
  *   <dd>The elements of the set of include command arguments that were added by calling {@link
  *       #addInclude(String)}, where each element is separated by a space.
  * </dl>
  *
  * @param container The composite actor for which we generate the makefile
  * @param currentDirectory The director in which the makefile is to be written.
  * @exception IllegalActionException If there is a problem reading a parameter, if there is a
  *     problem creating the codeDirectory directory or if there is a problem writing the code to a
  *     file.
  */
 @Override
 protected void _writeMakefile(CompositeEntity container, String currentDirectory)
     throws IllegalActionException {
   _substituteMap.put("@PTCGIncludes@", _concatenateElements(_includes));
   super._writeMakefile(container, currentDirectory);
 }