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

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.GppLinker
All Implemented Interfaces:
java.lang.Cloneable, Linker, Processor

public class GppLinker
extends AbstractLdLinker

Adapter for the g++ variant of the GCC linker

Author:
Stephen M. Webb

Field Summary
protected static java.lang.String[] discardFiles
           
protected static java.lang.String[] libtoolObjFiles
           
protected static java.lang.String[] objFiles
           
 
Fields inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
DEFAULT_DISCARD_BID, DEFAULT_PROCESS_BID
 
Constructor Summary
protected GppLinker(java.lang.String command, java.lang.String[] extensions, java.lang.String[] ignoredExtensions, java.lang.String outputPrefix, java.lang.String outputSuffix, boolean isLibtool, GppLinker libtoolLinker)
           
 
Method Summary
protected  void addImpliedArgs(boolean debug, LinkType linkType, java.util.Vector args)
           
 java.lang.String[] addLibrarySets(CCTask task, LibrarySet[] libsets, java.util.Vector preargs, java.util.Vector midargs, java.util.Vector endargs)
           
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 GppLinker 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, 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
 

Field Detail

discardFiles

protected static final java.lang.String[] discardFiles

objFiles

protected static final java.lang.String[] objFiles

libtoolObjFiles

protected static final java.lang.String[] libtoolObjFiles
Constructor Detail

GppLinker

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

getInstance

public static GppLinker getInstance()

addImpliedArgs

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

addLibrarySets

public java.lang.String[] addLibrarySets(CCTask task,
                                         LibrarySet[] libsets,
                                         java.util.Vector preargs,
                                         java.util.Vector midargs,
                                         java.util.Vector endargs)
Overrides:
addLibrarySets 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 GppLinker 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.