net.sf.antcontrib.cpptasks.gcc
Class AbstractLdLinker

java.lang.Object
  |
  +--net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
        |
        +--net.sf.antcontrib.cpptasks.compiler.AbstractLinker
              |
              +--net.sf.antcontrib.cpptasks.compiler.CommandLineLinker
                    |
                    +--net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker
Direct Known Subclasses:
aCCLinker, ForteCCLinker, GccLinker, IntelLinux32Linker, IntelLinux64Linker, LdLinker, VisualAgeLinker

public abstract class AbstractLdLinker
extends CommandLineLinker

Abstract adapter for ld-like linkers

Author:
Curt Arnold

Constructor Summary
protected AbstractLdLinker(java.lang.String command, java.lang.String identifierArg, java.lang.String[] extensions, java.lang.String[] ignoredExtensions, java.lang.String outputPrefix, java.lang.String outputSuffix, boolean isLibtool, AbstractLdLinker libtoolLinker)
           
 
Method Summary
 void addBase(long base, java.util.Vector args)
           
 void addFixed(java.lang.Boolean fixed, java.util.Vector args)
           
protected  void addImpliedArgs(boolean debug, LinkType linkType, java.util.Vector args)
           
 void addIncremental(boolean incremental, java.util.Vector args)
           
protected  int addLibraryPatterns(java.lang.String[] libnames, java.lang.StringBuffer buf, java.lang.String prefix, java.lang.String extension, java.lang.String[] patterns, int offset)
           
 java.lang.String[] addLibrarySets(CCTask task, LibrarySet[] libsets, java.util.Vector preargs, java.util.Vector midargs, java.util.Vector endargs)
           
 void addMap(boolean map, java.util.Vector args)
           
 void addStack(int stack, java.util.Vector args)
           
 java.lang.String getCommandFileSwitch(java.lang.String commandFile)
           
protected  java.io.File[] getEnvironmentIncludePath()
          Returns library path.
 java.lang.String getLibraryKey(java.io.File libfile)
          Extracts the significant part of a library name to ensure there aren't collisions
 java.io.File[] getLibraryPath()
          Returns library path.
 java.lang.String[] getLibraryPatterns(java.lang.String[] libnames)
          Returns a set of filename patterns corresponding to library names.
 int getMaximumCommandLength()
           
 java.lang.String getOutputFileName(java.lang.String baseName)
          Output file name (no path components) corresponding to source file
 java.lang.String[] getOutputFileSwitch(java.lang.String outputFile)
           
 boolean isCaseSensitive()
          Returns true if the linker is case-sensitive
protected  boolean isHPUX()
           
 java.lang.String[] prepareArguments(CCTask task, java.lang.String outputDir, java.lang.String outputFile, java.lang.String[] sourceFiles, CommandLineLinkerConfiguration config)
          Prepares argument list for exec command.
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.CommandLineLinker
createConfiguration, decorateLinkerOption, getCommand, getIdentifier, getLibtoolLinker, getOutputFileSwitch, getStartupObject, link, prepareFilename, prepareResponseFile, quoteFilename, runCommand
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractLinker
bid, createConfiguration
 
Methods inherited from class net.sf.antcontrib.cpptasks.compiler.AbstractProcessor
getIdentifier, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

AbstractLdLinker

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

getLibraryPath

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

getOutputFileName

public java.lang.String getOutputFileName(java.lang.String baseName)
Description copied from interface: Processor
Output file name (no path components) corresponding to source file
Overrides:
getOutputFileName in class CommandLineLinker
Tags copied from interface: Processor
Parameters:
inputFile - input file
Returns:
output file name or null if no output file or name not determined by input file

addImpliedArgs

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

getCommandFileSwitch

public java.lang.String getCommandFileSwitch(java.lang.String commandFile)
Overrides:
getCommandFileSwitch in class CommandLineLinker

getOutputFileSwitch

public java.lang.String[] getOutputFileSwitch(java.lang.String outputFile)
Overrides:
getOutputFileSwitch in class CommandLineLinker

getMaximumCommandLength

public int getMaximumCommandLength()
Overrides:
getMaximumCommandLength in class CommandLineLinker

addStack

public void addStack(int stack,
                     java.util.Vector args)
Overrides:
addStack in class CommandLineLinker

addIncremental

public void addIncremental(boolean incremental,
                           java.util.Vector args)
Overrides:
addIncremental in class CommandLineLinker

addBase

public void addBase(long base,
                    java.util.Vector args)
Overrides:
addBase in class CommandLineLinker

addMap

public void addMap(boolean map,
                   java.util.Vector args)
Overrides:
addMap in class CommandLineLinker

addFixed

public void addFixed(java.lang.Boolean fixed,
                     java.util.Vector args)
Overrides:
addFixed in class CommandLineLinker

addLibraryPatterns

protected int addLibraryPatterns(java.lang.String[] libnames,
                                 java.lang.StringBuffer buf,
                                 java.lang.String prefix,
                                 java.lang.String extension,
                                 java.lang.String[] patterns,
                                 int offset)

isHPUX

protected boolean isHPUX()

getLibraryPatterns

public java.lang.String[] getLibraryPatterns(java.lang.String[] libnames)
Description copied from interface: Linker
Returns a set of filename patterns corresponding to library names. For example, "advapi32" would be expanded to "advapi32.dll" by DevStudioLinker and to "libadvapi32.a" and "libadvapi32.so" by GccLinker.
Tags copied from interface: Linker
Parameters:
libnames - array of library names

isCaseSensitive

public boolean isCaseSensitive()
Description copied from interface: Linker
Returns true if the linker is case-sensitive

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 CommandLineLinker

prepareArguments

public java.lang.String[] prepareArguments(CCTask task,
                                           java.lang.String outputDir,
                                           java.lang.String outputFile,
                                           java.lang.String[] sourceFiles,
                                           CommandLineLinkerConfiguration config)
Prepares argument list for exec command. Will return null if command line would exceed allowable command line buffer.
Overrides:
prepareArguments in class CommandLineLinker
Parameters:
outputFile - linker output file
sourceFiles - linker input files (.obj, .o, .res)
args - linker arguments
Returns:
arguments for runTask

getLibraryKey

public java.lang.String getLibraryKey(java.io.File libfile)
Description copied from interface: Linker
Extracts the significant part of a library name to ensure there aren't collisions
Overrides:
getLibraryKey in class AbstractLinker

getEnvironmentIncludePath

protected java.io.File[] getEnvironmentIncludePath()
Returns library path.


Copyright © 2001-2002 Ant-Contrib project. All Rights Reserved.