Package ptolemy.copernicus.kernel
Class MakefileWriter
- java.lang.Object
-
- soot.Transformer
-
- soot.SceneTransformer
-
- ptolemy.copernicus.kernel.MakefileWriter
-
- All Implemented Interfaces:
soot.HasPhaseOptions
public class MakefileWriter extends soot.SceneTransformer implements soot.HasPhaseOptions
A transformer that writes a makefile that can be used to run a model that has been code generated.For a model called Foo, we generate Foo/makefile. in the directory named by the outputDirectory parameter.
- Since:
- Ptolemy II 2.1
- Version:
- $Id$
- Author:
- Christopher Hylands
- Pt.AcceptedRating:
- Red (cxh)
- Pt.ProposedRating:
- Red (cxh)
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
addMakefileSubstitution(java.lang.String name, java.lang.String value)
Add a makefile substitution from the given name to the given value.static java.lang.String
codeBase(java.lang.String targetPackage, java.lang.String outputDirectory, java.lang.String ptIIDirectory)
Convert targetPackage "foo/bar" to codeBase "../../.."java.lang.String
getDeclaredOptions()
java.lang.String
getDefaultOptions()
java.lang.String
getPhaseName()
protected void
internalTransform(java.lang.String phaseName, java.util.Map options)
Generate a makefile to that can be used to run the generated code.static MakefileWriter
v(CompositeEntity model)
Return an instance of this transformer that will operate on the given model.
-
-
-
Method Detail
-
v
public static MakefileWriter v(CompositeEntity model)
Return an instance of this transformer that will operate on the given model. The model is assumed to already have been properly initialized so that resolved types and other static properties of the model can be inspected.
-
getPhaseName
public java.lang.String getPhaseName()
- Specified by:
getPhaseName
in interfacesoot.HasPhaseOptions
-
getDefaultOptions
public java.lang.String getDefaultOptions()
- Specified by:
getDefaultOptions
in interfacesoot.HasPhaseOptions
-
getDeclaredOptions
public java.lang.String getDeclaredOptions()
- Specified by:
getDeclaredOptions
in interfacesoot.HasPhaseOptions
-
addMakefileSubstitution
public static void addMakefileSubstitution(java.lang.String name, java.lang.String value)
Add a makefile substitution from the given name to the given value.
-
codeBase
public static java.lang.String codeBase(java.lang.String targetPackage, java.lang.String outputDirectory, java.lang.String ptIIDirectory)
Convert targetPackage "foo/bar" to codeBase "../../.."- Parameters:
targetPackage
- The package where we are creating the codeoutputDirectory
- The directory where we are producing code.ptIIDirectory
- The Ptolemy II directory, usually the value of $PTII- Returns:
- The codebase. If the codebase is ".", then we may want to copy jar files.
-
internalTransform
protected void internalTransform(java.lang.String phaseName, java.util.Map options)
Generate a makefile to that can be used to run the generated code.For example, if the model is called MyModel, and this phase is called with:
-p wjtp.makefileWriter targetPackage:foo.bar,outputDirector:c:/tmp,templateDirectory:bif
Then we will create the directory c:/tmp/foo/bar/MyModel, read in $PTII/bif/makefile.in and generate c:/tmp/foo/bar/makefile.- Specified by:
internalTransform
in classsoot.SceneTransformer
- Parameters:
phaseName
- The name of the phase, for examplewjtp.appletWriter
.options
- The options Map. This transformer uses the following options:- _generatorAttributeFileName
- The pathname to the
GeneratorAttribute
that contains the keys and values will we use to update the makefile template with. - The pathname to the
- outputDirectory
- The absolute path to the directory where the generated code
will reside, for example:
c:/ptII/ptolemy/copernicus/applet/cg/Butterfly
- overwrite
- Determines whether we overwrite a preexisting makefile. The default is to overwrite. T
- targetPackage
- The package where the generated code will reside, for example:
ptolemy.copernicus.applet.cg.Butterfly
- templateDirectory
- The directory where we should read the makefile.in file
- _generatorAttributeFileName
-
-