net.sf.antcontrib.cpptasks
Class LinkerDef

java.lang.Object
  extended by org.apache.tools.ant.ProjectComponent
      extended by org.apache.tools.ant.types.DataType
          extended by net.sf.antcontrib.cpptasks.ProcessorDef
              extended by net.sf.antcontrib.cpptasks.LinkerDef

public class LinkerDef
extends ProcessorDef

A linker definition. linker elements may be placed either as children of a cc element or the project element. A linker element with an id attribute may be referenced by linker elements with refid or extends attributes.

Author:
Adam Murdoch, Curt Arnold

Field Summary
 
Fields inherited from class net.sf.antcontrib.cpptasks.ProcessorDef
newEnvironment
 
Fields inherited from class org.apache.tools.ant.types.DataType
checked, description, ref
 
Fields inherited from class org.apache.tools.ant.ProjectComponent
project
 
Constructor Summary
LinkerDef()
          Default constructor
 
Method Summary
 void addConfiguredLinkerArg(LinkerArgument arg)
          Adds a linker command-line arg.
 void addConfiguredLinkerParam(LinkerParam param)
          Adds a compiler command-line arg.
 void addLibset(LibrarySet libset)
          Adds a system library set.
 void addSyslibset(SystemLibrarySet libset)
          Adds a system library set.
 void execute()
           
 LibrarySet[] getActiveLibrarySets(LinkerDef[] defaultProviders, int index)
          Returns an array of active library sets for this linker definition.
 LibrarySet[] getActiveSystemLibrarySets(LinkerDef[] defaultProviders, int index)
          Returns an array of active library sets for this linker definition.
 LibrarySet[] getActiveUserLibrarySets(LinkerDef[] defaultProviders, int index)
          Returns an array of active library sets for this linker definition.
 long getBase(LinkerDef[] defaultProviders, int index)
           
 java.lang.String getEntry(LinkerDef[] defaultProviders, int index)
           
 java.lang.Boolean getFixed(LinkerDef[] defaultProviders, int index)
           
 boolean getIncremental(LinkerDef[] defaultProviders, int index)
           
 boolean getMap(LinkerDef[] defaultProviders, int index)
           
 Processor getProcessor()
          Obtains the appropriate processor (compiler, linker)
 Processor getProcessor(LinkType linkType)
          Obtains the appropriate processor (compiler, linker) based on the LinkType.
 int getStack(LinkerDef[] defaultProviders, int index)
           
 void setBase(FlexLong base)
          Sets the base address.
 void setEntry(java.lang.String entry)
          Sets the starting address.
 void setFixed(boolean fixed)
          If true, marks the file to be loaded only at its preferred address.
 void setIncremental(boolean incremental)
          If true, allows incremental linking.
 void setMap(boolean map)
          If set to true, a map file will be produced.
 void setName(LinkerEnum name)
          Sets linker type.
protected  void setProcessor(Processor proc)
          Sets the processor
 void setStack(org.apache.tools.ant.types.FlexInteger stack)
          Sets stack size in bytes.
 void visitSystemLibraries(Linker linker, FileVisitor libraryVisitor)
           
 void visitUserLibraries(Linker linker, FileVisitor libraryVisitor)
           
 
Methods inherited from class net.sf.antcontrib.cpptasks.ProcessorDef
addConfiguredProcessorArg, addConfiguredProcessorParam, addEnv, addFileset, booleanValueOf, createConfiguration, getActiveProcessorArgs, getActiveProcessorParams, getDebug, getDefaultProviders, getExtends, getInherit, getLibtool, getRebuild, hasFileSets, isActive, setClassname, setDebug, setDescription, setExtends, setId, setIf, setInherit, setLibtool, setNewenvironment, setRebuild, setRefid, setUnless, visitFiles
 
Methods inherited from class org.apache.tools.ant.types.DataType
checkAttributesAllowed, checkChildrenAllowed, circularReference, dieOnCircularReference, getCheckedRef, getDescription, getRefid, isChecked, isReference, noChildrenAllowed, setChecked, tooManyAttributes
 
Methods inherited from class org.apache.tools.ant.ProjectComponent
getProject, log, log, setProject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LinkerDef

public LinkerDef()
Default constructor

See Also:
Object.Object()
Method Detail

addConfiguredLinkerArg

public void addConfiguredLinkerArg(LinkerArgument arg)
Adds a linker command-line arg.


addConfiguredLinkerParam

public void addConfiguredLinkerParam(LinkerParam param)
Adds a compiler command-line arg.


addLibset

public void addLibset(LibrarySet libset)
Adds a system library set.


addSyslibset

public void addSyslibset(SystemLibrarySet libset)
Adds a system library set.


execute

public void execute()
             throws org.apache.tools.ant.BuildException
Throws:
org.apache.tools.ant.BuildException

getActiveLibrarySets

public LibrarySet[] getActiveLibrarySets(LinkerDef[] defaultProviders,
                                         int index)
Returns an array of active library sets for this linker definition.


getActiveSystemLibrarySets

public LibrarySet[] getActiveSystemLibrarySets(LinkerDef[] defaultProviders,
                                               int index)
Returns an array of active library sets for this linker definition.


getActiveUserLibrarySets

public LibrarySet[] getActiveUserLibrarySets(LinkerDef[] defaultProviders,
                                             int index)
Returns an array of active library sets for this linker definition.


getBase

public long getBase(LinkerDef[] defaultProviders,
                    int index)

getFixed

public java.lang.Boolean getFixed(LinkerDef[] defaultProviders,
                                  int index)

getIncremental

public boolean getIncremental(LinkerDef[] defaultProviders,
                              int index)

getMap

public boolean getMap(LinkerDef[] defaultProviders,
                      int index)

getEntry

public java.lang.String getEntry(LinkerDef[] defaultProviders,
                                 int index)

getProcessor

public Processor getProcessor()
Description copied from class: ProcessorDef
Obtains the appropriate processor (compiler, linker)

Overrides:
getProcessor in class ProcessorDef
Returns:
processor

getProcessor

public Processor getProcessor(LinkType linkType)
Description copied from class: ProcessorDef
Obtains the appropriate processor (compiler, linker) based on the LinkType.

Overrides:
getProcessor in class ProcessorDef
Returns:
processor

getStack

public int getStack(LinkerDef[] defaultProviders,
                    int index)

setBase

public void setBase(FlexLong base)
Sets the base address. May be specified in either decimal or hex.

Parameters:
base - base address

setEntry

public void setEntry(java.lang.String entry)
Sets the starting address.

Parameters:
entry - function name

setFixed

public void setFixed(boolean fixed)
If true, marks the file to be loaded only at its preferred address.


setIncremental

public void setIncremental(boolean incremental)
If true, allows incremental linking.


setMap

public void setMap(boolean map)
If set to true, a map file will be produced.


setName

public void setName(LinkerEnum name)
             throws org.apache.tools.ant.BuildException
Sets linker type. Supported linkers
gcc Gcc Linker
g++ G++ Linker
ld Ld Linker
ar Gcc Librarian
msvc Microsoft Linker
bcc Borland Linker
df Compaq Visual Fortran Linker
icl Intel Linker for Windows (IA-32)
ecl Intel Linker for Windows (IA-64)
icc Intel Linker for Linux (IA-32)
ecc Intel Linker for Linux (IA-64)
CC Sun ONE Linker
aCC HP aC++ Linker
os390 OS390 Linker
os390batch OS390 Linker
os400 IccLinker
sunc89 C89 Linker
xlC VisualAge Linker
wcl OpenWatcom C/C++ linker
wfl OpenWatcom FORTRAN linker

Throws:
org.apache.tools.ant.BuildException

setProcessor

protected void setProcessor(Processor proc)
                     throws org.apache.tools.ant.BuildException
Description copied from class: ProcessorDef
Sets the processor

Overrides:
setProcessor in class ProcessorDef
Parameters:
proc - processor, may not be null.
Throws:
org.apache.tools.ant.BuildException - if ProcessorDef is a reference

setStack

public void setStack(org.apache.tools.ant.types.FlexInteger stack)
Sets stack size in bytes.


visitSystemLibraries

public void visitSystemLibraries(Linker linker,
                                 FileVisitor libraryVisitor)

visitUserLibraries

public void visitUserLibraries(Linker linker,
                               FileVisitor libraryVisitor)


Copyright 2001-2008 Ant-Contrib Project. All Rights Reserved.