]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / Java / Source / Cpptasks / net / sf / antcontrib / cpptasks / LinkerDef.java
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java
deleted file mode 100644 (file)
index d997b2f..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-/*\r
- * \r
- * Copyright 2002-2004 The Ant-Contrib project\r
- *\r
- *  Licensed under the Apache License, Version 2.0 (the "License");\r
- *  you may not use this file except in compliance with the License.\r
- *  You may obtain a copy of the License at\r
- *\r
- *      http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *  Unless required by applicable law or agreed to in writing, software\r
- *  distributed under the License is distributed on an "AS IS" BASIS,\r
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *  See the License for the specific language governing permissions and\r
- *  limitations under the License.\r
- */\r
-package net.sf.antcontrib.cpptasks;\r
-import java.io.File;\r
-import java.util.Enumeration;\r
-import java.util.Vector;\r
-\r
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;\r
-import net.sf.antcontrib.cpptasks.compiler.LinkType;\r
-import net.sf.antcontrib.cpptasks.compiler.Linker;\r
-import net.sf.antcontrib.cpptasks.compiler.Processor;\r
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;\r
-import net.sf.antcontrib.cpptasks.gcc.GccLinker;\r
-import net.sf.antcontrib.cpptasks.types.FlexLong;\r
-import net.sf.antcontrib.cpptasks.types.LibrarySet;\r
-import net.sf.antcontrib.cpptasks.types.LinkerArgument;\r
-import net.sf.antcontrib.cpptasks.types.SystemLibrarySet;\r
-\r
-import org.apache.tools.ant.BuildException;\r
-import org.apache.tools.ant.Project;\r
-import org.apache.tools.ant.types.FlexInteger;\r
-/**\r
- * A linker definition. linker elements may be placed either as children of a\r
- * cc element or the project element. A linker element with an id attribute may\r
- * be referenced by linker elements with refid or extends attributes.\r
- * \r
- * @author Adam Murdoch\r
- * @author Curt Arnold\r
- */\r
-public class LinkerDef extends ProcessorDef {\r
-    private long base;\r
-    private String entry;\r
-    private Boolean fixed;\r
-    private Boolean incremental;\r
-    private final Vector librarySets = new Vector();\r
-    private Boolean map;\r
-    private int stack;\r
-    private final Vector sysLibrarySets = new Vector();\r
-    private final Vector versionInfos = new Vector();\r
-    private Boolean defaultflag = new Boolean(true);\r
-    /**\r
-     * Default constructor\r
-     * \r
-     * @see java.lang.Object#Object()\r
-     */\r
-    public LinkerDef() {\r
-        base = -1;\r
-        stack = -1;\r
-    }\r
-    private void addActiveLibrarySet(Project project, Vector libsets,\r
-            Vector srcSets) {\r
-        Enumeration srcenum = srcSets.elements();\r
-        while (srcenum.hasMoreElements()) {\r
-            LibrarySet set = (LibrarySet) srcenum.nextElement();\r
-            if (set.isActive(project)) {\r
-                libsets.addElement(set);\r
-            }\r
-        }\r
-    }\r
-    private void addActiveSystemLibrarySets(Project project, Vector libsets) {\r
-        addActiveLibrarySet(project, libsets, sysLibrarySets);\r
-    }\r
-    private void addActiveUserLibrarySets(Project project, Vector libsets) {\r
-        addActiveLibrarySet(project, libsets, librarySets);\r
-    }\r
-    /**\r
-     * Adds a linker command-line arg.\r
-     */\r
-    public void addConfiguredLinkerArg(LinkerArgument arg) {\r
-        addConfiguredProcessorArg(arg);\r
-    }\r
-    /**\r
-     * Adds a compiler command-line arg.\r
-     */\r
-    public void addConfiguredLinkerParam(LinkerParam param) {\r
-        if (isReference()) {\r
-            throw noChildrenAllowed();\r
-        }\r
-        addConfiguredProcessorParam(param);\r
-    }\r
-    /**\r
-     * Adds a system library set.\r
-     */\r
-    public void addLibset(LibrarySet libset) {\r
-        if (isReference()) {\r
-            throw super.noChildrenAllowed();\r
-        }\r
-        if (libset == null) {\r
-            throw new NullPointerException("libset");\r
-        }\r
-        librarySets.addElement(libset);\r
-    }\r
-    /**\r
-     * Adds a system library set.\r
-     */\r
-    public void addSyslibset(SystemLibrarySet libset) {\r
-        if (isReference()) {\r
-            throw super.noChildrenAllowed();\r
-        }\r
-        if (libset == null) {\r
-            throw new NullPointerException("libset");\r
-        }\r
-        sysLibrarySets.addElement(libset);\r
-    }\r
-    \r
-    /**\r
-     * Adds desriptive version information to be included in the\r
-     * generated file.  The first active version info block will\r
-     * be used.\r
-     */\r
-    public void addConfiguredVersioninfo(VersionInfo newVersionInfo) {\r
-        if (isReference()) {\r
-            throw noChildrenAllowed();\r
-        }\r
-        newVersionInfo.setProject(this.getProject());\r
-        versionInfos.addElement(newVersionInfo);\r
-    }\r
-    \r
-    public ProcessorConfiguration createConfiguration(CCTask task,\r
-            LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform) {\r
-        //\r
-        //    must combine some local context (the linkType)\r
-        //       with the referenced element\r
-        //\r
-        //    get a pointer to the definition (either local or referenced)\r
-        ProcessorDef thisDef = this;\r
-        if (isReference()) {\r
-            thisDef = ((ProcessorDef) getCheckedRef(ProcessorDef.class,\r
-                    "ProcessorDef"));\r
-        }\r
-        //\r
-        //    find the appropriate processor (combines local linkType\r
-        //       with possibly remote linker name)\r
-        Processor proc = getProcessor();\r
-        proc = proc.getLinker(linkType);\r
-        ProcessorDef[] defaultProviders = getDefaultProviders(baseDef);\r
-        return proc.createConfiguration(task, linkType, defaultProviders,\r
-                thisDef, targetPlatform);\r
-    }\r
-    public void execute() throws org.apache.tools.ant.BuildException {\r
-        throw new org.apache.tools.ant.BuildException(\r
-                "Not an actual task, but looks like one for documentation purposes");\r
-    }\r
-    /**\r
-     * Returns an array of active library sets for this linker definition.\r
-     */\r
-    public LibrarySet[] getActiveLibrarySets(LinkerDef[] defaultProviders,\r
-            int index) {       \r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getActiveUserLibrarySets(defaultProviders, index);\r
-        }\r
-        Project p = getProject();\r
-        Vector libsets = new Vector();\r
-        for (int i = index; i < defaultProviders.length; i++) {\r
-            defaultProviders[i].addActiveUserLibrarySets(p, libsets);\r
-            defaultProviders[i].addActiveSystemLibrarySets(p, libsets);\r
-        }\r
-        addActiveUserLibrarySets(p, libsets);\r
-        addActiveSystemLibrarySets(p, libsets);\r
-        LibrarySet[] sets = new LibrarySet[libsets.size()];\r
-        libsets.copyInto(sets);\r
-        return sets;\r
-    }\r
-    /**\r
-     * Returns an array of active library sets for this linker definition.\r
-     */\r
-    public LibrarySet[] getActiveSystemLibrarySets(\r
-            LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getActiveUserLibrarySets(defaultProviders, index);\r
-        }\r
-        Project p = getProject();\r
-        Vector libsets = new Vector();\r
-        for (int i = index; i < defaultProviders.length; i++) {\r
-            defaultProviders[i].addActiveSystemLibrarySets(p, libsets);\r
-        }\r
-        addActiveSystemLibrarySets(p, libsets);\r
-        LibrarySet[] sets = new LibrarySet[libsets.size()];\r
-        libsets.copyInto(sets);\r
-        return sets;\r
-    }\r
-    /**\r
-     * Returns an array of active library sets for this linker definition.\r
-     */\r
-    public LibrarySet[] getActiveUserLibrarySets(LinkerDef[] defaultProviders,\r
-            int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getActiveUserLibrarySets(defaultProviders, index);\r
-        }\r
-        Project p = getProject();\r
-        Vector libsets = new Vector();\r
-        for (int i = index; i < defaultProviders.length; i++) {\r
-            defaultProviders[i].addActiveUserLibrarySets(p, libsets);\r
-        }\r
-        addActiveUserLibrarySets(p, libsets);\r
-        LibrarySet[] sets = new LibrarySet[libsets.size()];\r
-        libsets.copyInto(sets);\r
-        return sets;\r
-    }\r
-    public long getBase(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getBase(defaultProviders, index);\r
-        }\r
-        if (base <= 0) {\r
-            if (defaultProviders != null && index < defaultProviders.length) {\r
-                return defaultProviders[index].getBase(defaultProviders,\r
-                        index + 1);\r
-            }\r
-        }\r
-        return base;\r
-    }\r
-    public Boolean getFixed(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getFixed(defaultProviders, index);\r
-        }\r
-        if (fixed == null) {\r
-            if (defaultProviders != null && index < defaultProviders.length) {\r
-                return defaultProviders[index].getFixed(defaultProviders,\r
-                        index + 1);\r
-            }\r
-        }\r
-        return fixed;\r
-    }\r
-    public boolean getIncremental(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getIncremental(defaultProviders, index);\r
-        }\r
-        if (incremental != null) {\r
-            return incremental.booleanValue();\r
-        }\r
-        if (defaultProviders != null && index < defaultProviders.length) {\r
-            return defaultProviders[index].getIncremental(defaultProviders, index + 1);\r
-        }\r
-        return false;\r
-    }\r
-    public boolean getMap(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getMap(defaultProviders, index);\r
-        }\r
-        if (map != null) {\r
-            return map.booleanValue();\r
-        }\r
-        if (defaultProviders != null && index < defaultProviders.length) {\r
-            return defaultProviders[index].getMap(defaultProviders, index + 1);\r
-        }\r
-        return false;\r
-    }\r
-    public final Boolean getDefaultflag(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class,\r
-                  "LinkerDef")).getDefaultflag(defaultProviders, index);\r
-        }\r
-        return defaultflag;\r
-    }\r
-    public String getEntry(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getEntry(defaultProviders, index);\r
-        }\r
-        if (entry != null) {\r
-            return entry;\r
-        }\r
-        if (defaultProviders != null && index < defaultProviders.length) {\r
-            return defaultProviders[index].getEntry(defaultProviders, index + 1);\r
-        }\r
-        return null;\r
-    }\r
-\r
-    public Processor getProcessor() {\r
-        Linker linker = (Linker) super.getProcessor();\r
-        if (linker == null) {\r
-            linker = GccLinker.getInstance();\r
-        }\r
-        if (getLibtool() && linker instanceof CommandLineLinker) {\r
-            CommandLineLinker cmdLineLinker = (CommandLineLinker) linker;\r
-            linker = cmdLineLinker.getLibtoolLinker();\r
-        }\r
-        return linker;\r
-    }\r
-    public int getStack(LinkerDef[] defaultProviders, int index) {\r
-        if (isReference()) {\r
-            return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))\r
-                    .getStack(defaultProviders, index);\r
-        }\r
-        if (stack < 0) {\r
-            if (defaultProviders != null && index < defaultProviders.length) {\r
-                return defaultProviders[index].getStack(defaultProviders,\r
-                        index + 1);\r
-            }\r
-        }\r
-        return stack;\r
-    }\r
-    /**\r
-     * Sets the base address. May be specified in either decimal or hex.\r
-     * \r
-     * @param base\r
-     *            base address\r
-     *  \r
-     */\r
-    public void setBase(FlexLong base) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.base = base.longValue();\r
-    }\r
-    /**\r
-     * Sets the starting address.\r
-     * \r
-     * @param name\r
-     *            function name\r
-     */\r
-    public void setEntry(String entry) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.entry = entry;\r
-    }\r
-    /**\r
-     * If true, marks the file to be loaded only at its preferred address.\r
-     */\r
-    public void setFixed(boolean fixed) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.fixed = booleanValueOf(fixed);\r
-    }\r
-    /**\r
-     * If true, allows incremental linking.\r
-     *  \r
-     */\r
-    public void setIncremental(boolean incremental) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.incremental = booleanValueOf(incremental);\r
-    }\r
-    /**\r
-     * If set to true, a map file will be produced.\r
-     */\r
-    public void setMap(boolean map) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.map = booleanValueOf(map);\r
-    }\r
-    /**\r
-     * Sets linker type.\r
-     * \r
-     * \r
-     * <table width="100%" border="1"> <thead>Supported linkers </thead>\r
-     * <tr>\r
-     * <td>gcc</td>\r
-     * <td>Gcc Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>g++</td>\r
-     * <td>G++ Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>ld</td>\r
-     * <td>Ld Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>ar</td>\r
-     * <td>Gcc Librarian</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>msvc</td>\r
-     * <td>Microsoft Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>bcc</td>\r
-     * <td>Borland Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>df</td>\r
-     * <td>Compaq Visual Fortran Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>icl</td>\r
-     * <td>Intel Linker for Windows (IA-32)</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>ecl</td>\r
-     * <td>Intel Linker for Windows (IA-64)</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>icc</td>\r
-     * <td>Intel Linker for Linux (IA-32)</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>ecc</td>\r
-     * <td>Intel Linker for Linux (IA-64)</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>CC</td>\r
-     * <td>Sun ONE Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>aCC</td>\r
-     * <td>HP aC++ Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>os390</td>\r
-     * <td>OS390 Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>os390batch</td>\r
-     * <td>OS390 Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>os400</td>\r
-     * <td>IccLinker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>sunc89</td>\r
-     * <td>C89 Linker</td>\r
-     * </tr>\r
-     * <tr>\r
-     * <td>xlC</td>\r
-     * <td>VisualAge Linker</td>\r
-     * </tr>\r
-     * </table>\r
-     *  \r
-     */\r
-    public void setName(LinkerEnum name) throws BuildException {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        Linker linker = name.getLinker();\r
-        super.setProcessor(linker);\r
-    }\r
-    protected void setProcessor(Processor proc) throws BuildException {\r
-        Linker linker = null;\r
-        if (proc instanceof Linker) {\r
-            linker = (Linker) proc;\r
-        } else {\r
-            LinkType linkType = new LinkType();\r
-            linker = proc.getLinker(linkType);\r
-        }\r
-        super.setProcessor(linker);\r
-    }\r
-    /**\r
-     * Sets stack size in bytes.\r
-     */\r
-    public void setStack(FlexInteger stack) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.stack = stack.intValue();\r
-    }\r
-    public void visitSystemLibraries(Linker linker, FileVisitor libraryVisitor) {\r
-       Project p = getProject();\r
-        if (p == null) {\r
-            throw new java.lang.IllegalStateException("project must be set");\r
-        }\r
-        if (isReference()) {\r
-            LinkerDef master = ((LinkerDef) getCheckedRef(LinkerDef.class,\r
-                    "Linker"));\r
-            master.visitSystemLibraries(linker, libraryVisitor);\r
-        } else {\r
-            //\r
-            //   if this linker extends another,\r
-            //      visit its libraries first\r
-            //\r
-            LinkerDef extendsDef = (LinkerDef) getExtends();\r
-            if (extendsDef != null) {\r
-                extendsDef.visitSystemLibraries(linker, libraryVisitor);\r
-            }\r
-            if (sysLibrarySets.size() > 0) {\r
-                File[] libpath = linker.getLibraryPath();\r
-                for (int i = 0; i < sysLibrarySets.size(); i++) {\r
-                    LibrarySet set = (LibrarySet) sysLibrarySets.elementAt(i);\r
-                    if (set.isActive(p)) {\r
-                        set.visitLibraries(p, linker, libpath,\r
-                                libraryVisitor);\r
-                    }\r
-                }\r
-            }\r
-        }\r
-    }\r
-    public void visitUserLibraries(Linker linker, FileVisitor libraryVisitor) {\r
-       Project p = getProject();\r
-       if (p == null) {\r
-            throw new java.lang.IllegalStateException("project must be set");\r
-        }\r
-        if (isReference()) {\r
-            LinkerDef master = ((LinkerDef) getCheckedRef(LinkerDef.class,\r
-                    "Linker"));\r
-            master.visitUserLibraries(linker, libraryVisitor);\r
-        } else {\r
-            //\r
-            //   if this linker extends another,\r
-            //      visit its libraries first\r
-            //\r
-            LinkerDef extendsDef = (LinkerDef) getExtends();\r
-            if (extendsDef != null) {\r
-                extendsDef.visitUserLibraries(linker, libraryVisitor);\r
-            }\r
-            //\r
-            //   visit the user libraries\r
-            //\r
-            if (librarySets.size() > 0) {\r
-                File[] libpath = linker.getLibraryPath();\r
-                for (int i = 0; i < librarySets.size(); i++) {\r
-                    LibrarySet set = (LibrarySet) librarySets.elementAt(i);\r
-                    if (set.isActive(p)) {\r
-                        set.visitLibraries(p, linker, libpath,\r
-                                libraryVisitor);\r
-                    }\r
-                }\r
-            }\r
-        }\r
-    }\r
-    /**\r
-     * Enables or disables default flags.\r
-     * \r
-     * @param defaultflag\r
-     *            if true, default flags will add to command line.\r
-     *  \r
-     */\r
-    public void setDefaultflag(boolean defaultflag) {\r
-        if (isReference()) {\r
-            throw tooManyAttributes();\r
-        }\r
-        this.defaultflag = booleanValueOf(defaultflag);\r
-    }\r
-}\r