net.sf.antcontrib.cpptasks.gcc.cross
Class GccLinker

java.lang.Object
  extended by net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
      extended by net.sf.antcontrib.cpptasks.compiler.AbstractLinker
          extended by net.sf.antcontrib.cpptasks.compiler.CommandLineLinker
              extended by net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker
                  extended by net.sf.antcontrib.cpptasks.gcc.cross.GccLinker
All Implemented Interfaces:
java.lang.Cloneable, Linker, Processor

public class GccLinker
extends AbstractLdLinker

Adapter for the GCC linker

Author:
Adam Murdoch

Field Summary
 
Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID
 
Constructor Summary
protected GccLinker(java.lang.String command, java.lang.String[] extensions, java.lang.String[] ignoredExtensions, java.lang.String outputPrefix, java.lang.String outputSuffix, boolean isLibtool, GccLinker libtoolLinker)
           
 
Method Summary
protected  void addImpliedArgs(boolean debug, LinkType linkType, java.util.Vector args)
           
protected  java.lang.Object clone()
           
 java.lang.String decorateLinkerOption(java.lang.StringBuffer buf, java.lang.String arg)
          Allows drived linker to decorate linker option.
static GccLinker getInstance()
           
 java.io.File[] getLibraryPath()
          Returns library path.
 Linker getLinker(LinkType type)
          Gets the linker for the specified link type.
 void link(CCTask task, java.io.File outputFile, java.lang.String[] sourceFiles, CommandLineLinkerConfiguration config)
          Performs a link using a command line linker
 
Methods inherited from class net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker
addBase, addEntry, addFixed, addIncremental, addLibraryPatterns, addLibrarySets, addMap, addStack, getCommandFileSwitch, getDynamicLibFlag, getEnvironmentIncludePath, getLibraryKey, getLibraryPatterns, getMaximumCommandLength, getOutputFileNames, getOutputFileSwitch, getStaticLibFlag, isCaseSensitive, isHPUX, prepareArguments
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.CommandLineLinker
createConfiguration, getCommand, getIdentifier, getLibtoolLinker, getOutputFileSwitch, getStartupObject, prepareFilename, prepareResponseFile, quoteFilename, runCommand, setCommand
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractLinker
addVersionFiles, bid, changeEnvironment, createConfiguration
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
getHeaderExtensions, getIdentifier, getOSArch, getOSName, getSourceExtensions, isDarwin, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GccLinker

protected GccLinker(java.lang.String command,
                    java.lang.String[] extensions,
                    java.lang.String[] ignoredExtensions,
                    java.lang.String outputPrefix,
                    java.lang.String outputSuffix,
                    boolean isLibtool,
                    GccLinker libtoolLinker)
Method Detail

getInstance

public static GccLinker getInstance()

addImpliedArgs

protected void addImpliedArgs(boolean debug,
                              LinkType linkType,
                              java.util.Vector args)
Overrides:
addImpliedArgs in class AbstractLdLinker

clone

protected java.lang.Object clone()
                          throws java.lang.CloneNotSupportedException
Overrides:
clone in class AbstractProcessor
Throws:
java.lang.CloneNotSupportedException

decorateLinkerOption

public java.lang.String decorateLinkerOption(java.lang.StringBuffer buf,
                                             java.lang.String arg)
Allows drived linker to decorate linker option. Override by GccLinker to prepend a "-Wl," to pass option to through gcc to linker.

Overrides:
decorateLinkerOption in class CommandLineLinker
Parameters:
buf - buffer that may be used and abused in the decoration process, must not be null.
arg - linker argument

getLibraryPath

public java.io.File[] getLibraryPath()
Returns library path.

Specified by:
getLibraryPath in interface Linker
Overrides:
getLibraryPath in class AbstractLdLinker

getLinker

public Linker getLinker(LinkType type)
Description copied from interface: Linker
Gets the linker for the specified link type.

Returns:
appropriate linker or null, will return this if this linker can handle the specified link type

link

public void link(CCTask task,
                 java.io.File outputFile,
                 java.lang.String[] sourceFiles,
                 CommandLineLinkerConfiguration config)
          throws org.apache.tools.ant.BuildException
Description copied from class: CommandLineLinker
Performs a link using a command line linker

Overrides:
link in class CommandLineLinker
Throws:
org.apache.tools.ant.BuildException


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