Class BorlandLibrarian

  • All Implemented Interfaces:
    java.lang.Cloneable, Linker, Processor

    public class BorlandLibrarian
    extends CommandLineLinker
    Adapter for the Borland(r) tlib Librarian
    Author:
    Curt Arnold
    • Method Detail

      • addBase

        protected void addBase​(long base,
                               java.util.Vector args)
        Specified by:
        addBase in class CommandLineLinker
      • addFixed

        protected void addFixed​(java.lang.Boolean fixed,
                                java.util.Vector args)
        Specified by:
        addFixed in class CommandLineLinker
      • addIncremental

        protected void addIncremental​(boolean incremental,
                                      java.util.Vector args)
        Specified by:
        addIncremental in class CommandLineLinker
      • addMap

        protected void addMap​(boolean map,
                              java.util.Vector args)
        Specified by:
        addMap in class CommandLineLinker
      • addStack

        protected void addStack​(int stack,
                                java.util.Vector args)
        Specified by:
        addStack in class CommandLineLinker
      • addEntry

        protected void addEntry​(java.lang.String entry,
                                java.util.Vector args)
        Specified by:
        addEntry in class CommandLineLinker
      • getLibraryPath

        public java.io.File[] getLibraryPath()
        Description copied from interface: Linker
        returns the library path for the linker
      • getLibraryPatterns

        public java.lang.String[] getLibraryPatterns​(java.lang.String[] libnames,
                                                     LibraryTypeEnum libType)
        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.
        Parameters:
        libnames - array of library names
      • 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
      • isCaseSensitive

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

        public java.lang.String getIdentifier()
        Gets identifier for the linker. TLIB will lockup when attempting to get version information. Since the Librarian version isn't critical just return a stock response.
        Specified by:
        getIdentifier in interface Processor
        Overrides:
        getIdentifier in class CommandLineLinker
      • prepareArguments

        protected java.lang.String[] prepareArguments​(CCTask task,
                                                      java.lang.String outputDir,
                                                      java.lang.String outputName,
                                                      java.lang.String[] sourceFiles,
                                                      CommandLineLinkerConfiguration config)
        Prepares argument list for exec command.
        Overrides:
        prepareArguments in class CommandLineLinker
        Parameters:
        outputDir - linker output directory
        outputName - linker output name
        sourceFiles - linker input files (.obj, .o, .res)
        config - linker configuration
        task - compilation task.
        Returns:
        arguments for runTask
      • prepareResponseFile

        protected java.lang.String[] prepareResponseFile​(java.io.File outputFile,
                                                         java.lang.String[] args)
                                                  throws java.io.IOException
        Prepares argument list to execute the linker using a response file.
        Overrides:
        prepareResponseFile in class CommandLineLinker
        Parameters:
        outputFile - linker output file
        args - output of prepareArguments
        Returns:
        arguments for runTask
        Throws:
        java.io.IOException
      • link

        public void link​(CCTask task,
                         java.io.File outputFile,
                         java.lang.String[] sourceFiles,
                         CommandLineLinkerConfiguration config)
                  throws org.apache.tools.ant.BuildException
        Builds a library
        Overrides:
        link in class CommandLineLinker
        Throws:
        org.apache.tools.ant.BuildException
      • quoteFilename

        protected java.lang.String quoteFilename​(java.lang.StringBuffer buf,
                                                 java.lang.String filename)
        Encloses problematic file names within quotes.
        Overrides:
        quoteFilename in class CommandLineLinker
        Parameters:
        buf - string buffer
        filename - source file name
        Returns:
        filename potentially enclosed in quotes.