diff options
Diffstat (limited to 'Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks')
180 files changed, 0 insertions, 24761 deletions
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java deleted file mode 100644 index 67757bbf87..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AboutCCTask.java +++ /dev/null @@ -1,49 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-/**
- * The equivalent of a Help About
- * run "java -jar cpptasks.jar" to read
- *
- * @author Curt Arnold
- */
-public class AboutCCTask {
- /**
- * display identification message and exit
- *
- * @param args ignored
- */
- public static void main(String args[]) {
- System.out.println("CCTask: Compile and link task for Apache Ant 1.5 or later\n");
- System.out.println("Copyright (c) 2002-2004, The Ant-Contrib project.\n");
- System.out.println("http://sf.net/projects/ant-contrib\n");
- System.out.println("Licensed under the Apache Software License 2.0");
- System.out.println("available at http://www.apache.org/licenses/LICENSE-2.0\n");
- System.out.println("This software is not a product of the");
- System.out.println("of the Apache Software Foundation and no");
- System.out.println("endorsement or promotion is implied.\n");
- System.out.println("THIS SOFTWARE IS PROVIDED 'AS-IS', See");
- System.out.println("http://www.apache.org/LICENSE for additional");
- System.out.println("disclaimers.\n");
- System.out.println("To use:");
- System.out.println("\tPlace cpptasks.jar into lib directory of Ant 1.5 or later.");
- System.out.println("\tAdd <taskdef resource=\"cpptasks.tasks\"/> and");
- System.out.println("\t\t<typedef resource=\"cpptasks.types\"/> to build.xml");
- System.out.println("Add <cc/>, <compiler/>, <linker/>, <assembler/> and <aslcompiler> elements.");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java deleted file mode 100644 index e219ad6871..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ArchEnum.java +++ /dev/null @@ -1,72 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Enumeration of cpu architecture types.
- *
- * @author Curt Arnold
- *
- */
-public final class ArchEnum
- extends EnumeratedAttribute {
- /**
- * Constructor.
- *
- * Set by default to "pentium3"
- *
- * @see java.lang.Object#Object()
- */
- public ArchEnum() {
- setValue("pentium3");
- }
-
- /**
- * Gets list of acceptable values.
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- /**
- * Class initializer.
- */
- return new String[] {
- "i386",
- "i486",
- "i586",
- "i686",
- "pentium",
- "pentium-mmx",
- "pentiumpro",
- "pentium2",
- "pentium3",
- "pentium4",
- "k6",
- "k6-2",
- "k6-3",
- "athlon",
- "athlon-tbird",
- "athlon-4",
- "athlon-xp",
- "athlon-mp",
- "winchip-c6",
- "winchip2",
- "c3"};
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java deleted file mode 100644 index f69d3fde63..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerDef.java +++ /dev/null @@ -1,118 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import net.sf.antcontrib.cpptasks.compiler.Aslcompiler;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.intel.IntelWin32Aslcompiler;
-import net.sf.antcontrib.cpptasks.types.AslcompilerArgument;
-
-import org.apache.tools.ant.BuildException;
-
-/**
- * A asl compiler definition. asl compiler elements may be placed either as
- * children of a cc element or the project element. A asl compiler element with
- * an id attribute may be referenced from asl compiler elements with refid or
- * extends attributes.
- *
- */
-public final class AslcompilerDef extends ProcessorDef {
-
- private Boolean defaultflag = new Boolean(true);
-
- public AslcompilerDef () {
- }
-
- /**
- * Adds a asl compiler command-line arg.
- */
- public void addConfiguredAslcompilerArg(AslcompilerArgument arg) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- addConfiguredProcessorArg(arg);
- }
-
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-
- public final Boolean getDefaultflag(AslcompilerDef[] defaultProviders,
- int index) {
- if (isReference()) {
- return ((AslcompilerDef) getCheckedRef(AslcompilerDef.class,
- "AslcompilerDef")).getDefaultflag(defaultProviders,
- index);
- }
- return defaultflag;
- }
-
- public Processor getProcessor() {
- Processor processor = super.getProcessor();
- if (processor == null) {
- processor = IntelWin32Aslcompiler.getInstance();
- }
- return processor;
- }
-
- /**
- * Sets r type.
- *
- * <table width="100%" border="1"> <thead>Supported ASL Compilers</thead>
- * <tr>
- * <td>iasl (default)</td>
- * <td>Intel ACPI Source Language</td>
- * </tr>
- * <tr>
- * <td>asl</td>
- * <td>Microsoft ACPI Source Language</td>
- * </tr>
- * </table>
- *
- */
- public void setName(AslcompilerEnum name) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- Aslcompiler aslcompiler = name.getAslcompiler();
- setProcessor(aslcompiler);
- }
-
- protected void setProcessor(Processor proc) throws BuildException {
- try {
- super.setProcessor((Aslcompiler) proc);
- } catch (ClassCastException ex) {
- throw new BuildException(ex);
- }
- }
-
- /**
- * Enables or disables default flags.
- *
- * @param defaultflag
- * if true, default flags will add to command line.
- *
- */
- public void setDefaultflag(boolean defaultflag) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.defaultflag = booleanValueOf(defaultflag);
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java deleted file mode 100644 index fa9806916f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AslcompilerEnum.java +++ /dev/null @@ -1,54 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import net.sf.antcontrib.cpptasks.compiler.Aslcompiler;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioAslcompiler;
-import net.sf.antcontrib.cpptasks.intel.IntelWin32Aslcompiler;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Enumeration of supported ASL Compilers
- *
- * <table width="100%" border="1"> <thead>Supported ASL Compilers </thead>
- * <tr>
- * <td>iasl (default)</td>
- * <td>Intel ACPI Source Language</td>
- * </tr>
- * <tr>
- * <td>asl</td>
- * <td>Microsoft ACPI Source Language</td>
- * </tr>
- * </table>
- *
- */
-public class AslcompilerEnum extends EnumeratedAttribute {
- private final static ProcessorEnumValue[] aslcompiler = new ProcessorEnumValue[] {
- new ProcessorEnumValue("iasl", IntelWin32Aslcompiler
- .getInstance()),
- new ProcessorEnumValue("asl", DevStudioAslcompiler
- .getInstance()), };
-
- public Aslcompiler getAslcompiler() {
- return (Aslcompiler) aslcompiler[getIndex()].getProcessor();
- }
-
- public String[] getValues() {
- return ProcessorEnumValue.getValues(aslcompiler);
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java deleted file mode 100644 index aeae215780..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerDef.java +++ /dev/null @@ -1,237 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.Assembler;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.gcc.GccAssembler;
-import net.sf.antcontrib.cpptasks.types.AssemblerArgument;
-import net.sf.antcontrib.cpptasks.types.ConditionalPath;
-import net.sf.antcontrib.cpptasks.types.IncludePath;
-import net.sf.antcontrib.cpptasks.types.SystemIncludePath;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-
-/**
- * A assembler definition. Assembler elements may be placed either as children
- * of a cc element or the project element. A assembler element with an id
- * attribute may be referenced from assembler elements with refid or extends
- * attributes.
- *
- */
-public final class AssemblerDef extends ProcessorDef {
-
- private final Vector includePaths = new Vector();
-
- private final Vector sysIncludePaths = new Vector();
-
- private Boolean defaultflag = new Boolean(true);
-
- public AssemblerDef () {
- }
-
- /**
- * Adds a assembler command-line arg.
- */
- public void addConfiguredAssemblerArg(AssemblerArgument arg) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- addConfiguredProcessorArg(arg);
- }
-
- /**
- * Creates an include path.
- */
- public IncludePath createIncludePath() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- IncludePath path = new IncludePath(p);
- includePaths.addElement(path);
- return path;
- }
-
- /**
- * Creates an include path.
- */
- public SystemIncludePath createSysIncludePath() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- SystemIncludePath path = new SystemIncludePath(p);
- sysIncludePaths.addElement(path);
- return path;
- }
-
- /**
- * Add a <includepath>or <sysincludepath> if specify the file attribute
- *
- * @throws BuildException
- * if the specify file not exist
- */
- protected void loadFile(Vector activePath, File file) throws BuildException {
- FileReader fileReader;
- BufferedReader in;
- String str;
- if (!file.exists()) {
- throw new BuildException("The file " + file + " is not existed");
- }
- try {
- fileReader = new FileReader(file);
- in = new BufferedReader(fileReader);
- while ((str = in.readLine()) != null) {
- if (str.trim() == "") {
- continue;
- }
- str = getProject().replaceProperties(str);
- activePath.addElement(str.trim());
- }
- } catch (Exception e) {
- throw new BuildException(e.getMessage());
- }
- }
-
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-
- /**
- * Returns the assembler-specific include path.
- */
- public String[] getActiveIncludePaths() {
- if (isReference()) {
- return ((AssemblerDef) getCheckedRef(AssemblerDef.class,
- "AssemblerDef")).getActiveIncludePaths();
- }
- return getActivePaths(includePaths);
- }
-
- /**
- * Returns the assembler-specific sysinclude path.
- */
- public String[] getActiveSysIncludePaths() {
- if (isReference()) {
- return ((AssemblerDef) getCheckedRef(AssemblerDef.class,
- "AssemblerDef")).getActiveSysIncludePaths();
- }
- return getActivePaths(sysIncludePaths);
- }
-
- private String[] getActivePaths(Vector paths) {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project not set");
- }
- Vector activePaths = new Vector(paths.size());
- for (int i = 0; i < paths.size(); i++) {
- ConditionalPath path = (ConditionalPath) paths.elementAt(i);
- if (path.isActive(p)) {
- if (path.getFile() == null) {
- String[] pathEntries = path.list();
- for (int j = 0; j < pathEntries.length; j++) {
- activePaths.addElement(pathEntries[j]);
- }
- } else {
- loadFile(activePaths, path.getFile());
- }
- }
- }
- String[] pathNames = new String[activePaths.size()];
- activePaths.copyInto(pathNames);
- return pathNames;
- }
-
- public final Boolean getDefaultflag(AssemblerDef[] defaultProviders,
- int index) {
- if (isReference()) {
- return ((AssemblerDef) getCheckedRef(AssemblerDef.class,
- "AssemblerDef")).getDefaultflag(defaultProviders,
- index);
- }
- return defaultflag;
- }
-
- public Processor getProcessor() {
- Processor processor = super.getProcessor();
- if (processor == null) {
- processor = GccAssembler.getInstance();
- }
- return processor;
- }
-
- /**
- * Sets r type.
- *
- * <table width="100%" border="1"> <thead>Supported assemblers</thead>
- * <tr>
- * <td>gcc (default)</td>
- * <td>GAS assembler</td>
- * </tr>
- * <tr>
- * <td>masm</td>
- * <td>MASM assembler</td>
- * </tr>
- * </table>
- *
- */
- public void setName(AssemblerEnum name) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- Assembler assembler = name.getAssembler();
- setProcessor(assembler);
- }
-
- protected void setProcessor(Processor proc) throws BuildException {
- try {
- super.setProcessor((Assembler) proc);
- } catch (ClassCastException ex) {
- throw new BuildException(ex);
- }
- }
-
- /**
- * Enables or disables default flags.
- *
- * @param defaultflag
- * if true, default flags will add to command line.
- *
- */
- public void setDefaultflag(boolean defaultflag) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.defaultflag = booleanValueOf(defaultflag);
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java deleted file mode 100644 index 9abf9f496d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/AssemblerEnum.java +++ /dev/null @@ -1,53 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import net.sf.antcontrib.cpptasks.compiler.Assembler;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioAssembler;
-import net.sf.antcontrib.cpptasks.gcc.GccAssembler;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Enumeration of supported assemblers
- *
- * <table width="100%" border="1"> <thead>Supported assemblers </thead>
- * <tr>
- * <td>gas (default)</td>
- * <td>GAS assembler</td>
- * </tr>
- * <tr>
- * <td>masm</td>
- * <td>MASM assembler</td>
- * </tr>
- * </table>
- *
- */
-public class AssemblerEnum extends EnumeratedAttribute {
- private final static ProcessorEnumValue[] assemblers = new ProcessorEnumValue[] {
- new ProcessorEnumValue("gas", GccAssembler.getInstance()),
- new ProcessorEnumValue("masm", DevStudioAssembler
- .getInstance()), };
-
- public Assembler getAssembler() {
- return (Assembler) assemblers[getIndex()].getProcessor();
- }
-
- public String[] getValues() {
- return ProcessorEnumValue.getValues(assemblers);
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java deleted file mode 100644 index d044df1288..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTask.java +++ /dev/null @@ -1,1749 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.AslcompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.AssemblerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.LinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-import net.sf.antcontrib.cpptasks.types.AslcompilerArgument;
-import net.sf.antcontrib.cpptasks.types.AssemblerArgument;
-import net.sf.antcontrib.cpptasks.types.CompilerArgument;
-import net.sf.antcontrib.cpptasks.types.ConditionalFileSet;
-import net.sf.antcontrib.cpptasks.types.DefineSet;
-import net.sf.antcontrib.cpptasks.types.IncludePath;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LinkerArgument;
-import net.sf.antcontrib.cpptasks.types.SystemIncludePath;
-import net.sf.antcontrib.cpptasks.types.SystemLibrarySet;
-import net.sf.antcontrib.cpptasks.userdefine.UserDefineCompiler;
-import net.sf.antcontrib.cpptasks.userdefine.UserDefineDef;
-import net.sf.antcontrib.cpptasks.VersionInfo;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.Environment;
-
-/**
- * Compile, link, assembler and asl compile task.
- *
- * <p>
- * This task can compile various source languages and produce executables,
- * shared libraries (aka DLL's) and static libraries. Compiler adaptors are
- * currently available for several C/C++ compilers, FORTRAN, MIDL and Windows
- * Resource files. Assembler adaptors are currently available for MASM and GAS.
- * And aslcompiler support to ASL and IASL command.
- * </p>
- *
- *
- * <p>
- * Copyright (c) 2001-2005, The Ant-Contrib project.
- * </p>
- *
- * <p>
- * Licensed under the Apache Software License 2.0,
- * http://www.apache.org/licenses/LICENSE-2.0.
- * </p>
- *
- * <p>
- * For use with Apache Ant 1.5 or later. This software is not a product of the
- * of the Apache Software Foundation and no endorsement is implied.
- * </p>
- *
- * <p>
- * THIS SOFTWARE IS PROVIDED 'AS-IS', See
- * http://www.apache.org/licenses/LICENSE-2.0 for additional disclaimers.
- * </p>
- *
- * To use:
- * <ol>
- * <li>Place cpptasks.jar into the lib directory of Ant 1.5 or later.</li>
- * <li>Add <taskdef resource="cpptasks.tasks"/> and <typedef
- * resource="cpptasks.types"/> to build.xml.</li>
- * <li>Add <cc/>, <compiler/> <linker/> <assembler/>
- * and <aslcompiler/> elements to project.</li>
- * <li>Set path and environment variables to be able to run compiler from
- * command line.</li>
- * <li>Build project.</li>
- * </ol>
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public class CCTask extends Task {
- private class SystemLibraryCollector implements FileVisitor {
- private Hashtable libraries;
-
- private Linker linker;
-
- public SystemLibraryCollector (Linker linker, Hashtable libraries) {
- this.linker = linker;
- this.libraries = libraries;
- }
-
- public void visit(File basedir, String filename) {
- if (linker.bid(filename) > 0) {
- File libfile = new File(basedir, filename);
- String key = linker.getLibraryKey(libfile);
- libraries.put(key, libfile);
- }
- }
- }
-
- private static final ProcessorConfiguration[] EMPTY_CONFIG_ARRAY = new ProcessorConfiguration[0];
-
- /**
- * Builds a Hashtable to targets needing to be rebuilt keyed by compiler
- * configuration
- */
- public static Hashtable getTargetsToBuildByConfiguration(Hashtable targets) {
- Hashtable targetsByConfig = new Hashtable();
- Enumeration targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (target.getRebuild()) {
- Vector targetsForSameConfig = (Vector) targetsByConfig
- .get(target.getConfiguration());
- if (targetsForSameConfig != null) {
- targetsForSameConfig.addElement(target);
- } else {
- targetsForSameConfig = new Vector();
- targetsForSameConfig.addElement(target);
- targetsByConfig.put(target.getConfiguration(),
- targetsForSameConfig);
- }
- }
- }
- return targetsByConfig;
- }
-
- /** The userdefine definitions. */
- private Vector _userdefines = new Vector();
-
- /** The compiler definitions. */
- private Vector _compilers = new Vector();
-
- /** The output file type. */
- // private LinkType _linkType = LinkType.EXECUTABLE;
- /** The library sets. */
- private Vector _libsets = new Vector();
-
- /** The aslcompiler definitions. */
- private Vector _aslcompiler = new Vector();
-
- /** The assembler definitions. */
- private Vector _assemblers = new Vector();
-
- /** The linker definitions. */
- private Vector _linkers = new Vector();
-
- /** The object directory. */
- private File _objDir;
-
- /** The output file. */
- private File _outfile;
-
- private boolean userdefine = false;
- private String arch;
- private String os;
- private String vendor;
-
- /** the flag for assembler */
- private boolean assembler = true;
-
- /** the flag for aslcompiler */
- private boolean aslcompiler = true;
-
- /** The linker definitions. */
- private final Vector targetPlatforms = new Vector();
-
- /** The distributer definitions. */
- private Vector distributers = new Vector();
-
- /**
- * If true, stop build on compile failure.
- */
- protected boolean failOnError = true;
-
- /**
- * Content that appears in <cc>and also in <compiler>are maintained by a
- * captive CompilerDef instance
- */
- private final CompilerDef compilerDef = new CompilerDef();
-
- /**
- * Content that appears in <cc>and also in <aslcompiler>are maintained by a
- * captive AslcompilerDef instance
- */
- private final AslcompilerDef aslcompilerDef = new AslcompilerDef();
-
- /** The OS390 dataset to build to object to */
- private String dataset;
-
- /**
- *
- * Depth of dependency checking
- *
- * Values < 0 indicate full dependency checking Values >= 0 indicate partial
- * dependency checking and for superficial compilation checks. Will throw
- * BuildException before attempting link
- */
- private int dependencyDepth = -1;
-
- /**
- * Content that appears in <cc>and also in <assembler>are maintained by a
- * captive AssemblerDef instance
- */
- private final AssemblerDef assemblerDef = new AssemblerDef();
-
- /**
- * Content that appears in <cc>and also in <linker>are maintained by a
- * captive CompilerDef instance
- */
- private final LinkerDef linkerDef = new LinkerDef();
-
- /**
- * contains the subsystem, output type and
- *
- */
- private final LinkType linkType = new LinkType();
-
- /**
- * The property name which will be set with the physical filename of the
- * file that is generated by the linker
- */
- private String outputFileProperty;
-
- /**
- * if relentless = true, compilations should attempt to compile as many
- * files as possible before throwing a BuildException
- */
- private boolean relentless;
-
- public CCTask () {
- }
-
-
- public void addConfiguredCommand(UserDefineDef userdefineDef) {
- if (userdefineDef == null) {
- throw new NullPointerException("UserDefineDef");
- }
- userdefineDef.setProject(getProject());
- _userdefines.addElement(userdefineDef);
- }
- /**
- * Adds a asl compiler definition or reference.
- *
- * @param Aslcompiler
- * aslcompiler
- * @throws NullPointerException
- * if aslcompiler is null
- */
- public void addConfiguredAslcompiler(AslcompilerDef aslcompier) {
- if (aslcompier == null) {
- throw new NullPointerException("aslcompier");
- }
- aslcompier.setProject(getProject());
- _aslcompiler.addElement(aslcompier);
- }
-
- /**
- * Adds a asl command-line arg. Argument will be inherited by all nested
- * aslcompiler elements that do not have inherit="false".
- *
- */
- public void addConfiguredAslcompilerArg(AslcompilerArgument arg) {
- aslcompilerDef.addConfiguredAslcompilerArg(arg);
- }
-
- /**
- * Adds a assembler definition or reference.
- *
- * @param assembler
- * assemblera
- * @throws NullPointerException
- * if assembler is null
- */
- public void addConfiguredAssembler(AssemblerDef assembler) {
- if (assembler == null) {
- throw new NullPointerException("assembler");
- }
- assembler.setProject(getProject());
- _assemblers.addElement(assembler);
- }
-
- /**
- * Adds a assembler command-line arg. Argument will be inherited by all
- * nested assembler elements that do not have inherit="false".
- *
- */
- public void addConfiguredAssemblerArg(AssemblerArgument arg) {
- assemblerDef.addConfiguredAssemblerArg(arg);
- }
-
- /**
- * Adds a compiler definition or reference.
- *
- * @param compiler
- * compiler
- * @throws NullPointerException
- * if compiler is null
- */
- public void addConfiguredCompiler(CompilerDef compiler) {
- if (compiler == null) {
- throw new NullPointerException("compiler");
- }
- compiler.setProject(getProject());
- _compilers.addElement(compiler);
- }
-
- /**
- * Adds a compiler command-line arg. Argument will be inherited by all
- * nested compiler elements that do not have inherit="false".
- *
- */
- public void addConfiguredCompilerArg(CompilerArgument arg) {
- compilerDef.addConfiguredCompilerArg(arg);
- }
-
- /**
- * Adds a defineset. Will be inherited by all compiler elements that do not
- * have inherit="false".
- *
- * @param defs
- * Define set
- */
- public void addConfiguredDefineset(DefineSet defs) {
- compilerDef.addConfiguredDefineset(defs);
- }
-
- /**
- * Adds a linker definition. The first linker that is not disqualified by
- * its "if" and "unless" attributes will perform the link. If no child
- * linker element is active, the linker implied by the cc elements name or
- * classname attribute will be used.
- *
- * @param linker
- * linker
- * @throws NullPointerException
- * if linker is null
- */
- public void addConfiguredLinker(LinkerDef linker) {
- if (linker == null) {
- throw new NullPointerException("linker");
- }
- linker.setProject(getProject());
- _linkers.addElement(linker);
- }
-
- /**
- * Adds a linker command-line arg. Argument will be inherited by all nested
- * linker elements that do not have inherit="false".
- */
- public void addConfiguredLinkerArg(LinkerArgument arg) {
- linkerDef.addConfiguredLinkerArg(arg);
- }
-
- /**
- * Add an environment variable to the launched process.
- */
- public void addEnv(Environment.Variable var) {
- compilerDef.addEnv(var);
- linkerDef.addEnv(var);
- assemblerDef.addEnv(var);
- aslcompilerDef.addEnv(var);
- }
-
- /**
- * Adds a source file set.
- *
- * Files in these filesets will be auctioned to the available compiler
- * configurations, with the default compiler implied by the cc element
- * bidding last. If no compiler is interested in the file, it will be passed
- * to the linker.
- *
- * To have a file be processed by a particular compiler configuration, add a
- * fileset to the corresponding compiler element.
- */
- public void addFileset(ConditionalFileSet srcSet) {
- compilerDef.addFileset(srcSet);
- }
-
- /**
- * Adds a library set.
- *
- * Library sets will be inherited by all linker elements that do not have
- * inherit="false".
- *
- * @param libset
- * library set
- * @throws NullPointerException
- * if libset is null.
- */
- public void addLibset(LibrarySet libset) {
- if (libset == null) {
- throw new NullPointerException("libset");
- }
- linkerDef.addLibset(libset);
- }
-
- /**
- * Adds a system library set. Timestamps and locations of system library
- * sets are not used in dependency analysis.
- *
- * Essential libraries (such as C Runtime libraries) should not be specified
- * since the task will attempt to identify the correct libraries based on
- * the multithread, debug and runtime attributes.
- *
- * System library sets will be inherited by all linker elements that do not
- * have inherit="false".
- *
- * @param libset
- * library set
- * @throws NullPointerException
- * if libset is null.
- */
- public void addSyslibset(SystemLibrarySet libset) {
- if (libset == null) {
- throw new NullPointerException("libset");
- }
- linkerDef.addSyslibset(libset);
- }
-
- /**
- * Checks all targets that are not forced to be rebuilt or are missing
- * object files to be checked for modified include files
- *
- * @returns total number of targets to be rebuilt
- *
- */
- protected int checkForChangedIncludeFiles(Hashtable targets) {
- int potentialTargets = 0;
- int definiteTargets = 0;
- Enumeration targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (!target.getRebuild()) {
- potentialTargets++;
- } else {
- definiteTargets++;
- }
- }
- //
- // If there were remaining targets that
- // might be out of date
- //
- if (potentialTargets > 0) {
- log("Starting dependency analysis for "
- + Integer.toString(potentialTargets) + " files.");
- DependencyTable dependencyTable = new DependencyTable(_objDir);
- try {
- dependencyTable.load();
- } catch (Exception ex) {
- log("Problem reading dependencies.xml: " + ex.toString());
- }
- targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (!target.getRebuild()) {
- if (dependencyTable.needsRebuild(this, target,
- dependencyDepth)) {
- target.mustRebuild();
- }
- }
- }
- dependencyTable.commit(this);
- }
- //
- // count files being rebuilt now
- //
- int currentTargets = 0;
- targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (target.getRebuild()) {
- currentTargets++;
- }
- }
- if (potentialTargets > 0) {
- log(Integer.toString(potentialTargets - currentTargets
- + definiteTargets)
- + " files are up to date.");
- log(Integer.toString(currentTargets - definiteTargets)
- + " files to be recompiled from dependency analysis.");
- }
- log(Integer.toString(currentTargets) + " total files to be compiled.");
- return currentTargets;
- }
-
- protected LinkerConfiguration collectExplicitObjectFiles(
- Vector objectFiles, Vector sysObjectFiles) {
- //
- // find the first eligible linker
- //
- //
- ProcessorConfiguration linkerConfig = null;
- LinkerDef selectedLinkerDef = null;
- Linker selectedLinker = null;
- Hashtable sysLibraries = new Hashtable();
- TargetDef targetPlatform = getTargetPlatform();
- FileVisitor objCollector = null;
- FileVisitor sysLibraryCollector = null;
- for (int i = 0; i < _linkers.size(); i++) {
- LinkerDef currentLinkerDef = (LinkerDef) _linkers.elementAt(i);
- if (currentLinkerDef.isActive()) {
- selectedLinkerDef = currentLinkerDef;
- selectedLinker = currentLinkerDef.getProcessor().getLinker(
- linkType);
- //
- // skip the linker if it doesn't know how to
- // produce the specified link type
- if (selectedLinker != null) {
- linkerConfig = currentLinkerDef.createConfiguration(this,
- linkType, linkerDef, targetPlatform);
- if (linkerConfig != null) {
- //
- // create collectors for object files
- // and system libraries
- objCollector = new ObjectFileCollector(selectedLinker,
- objectFiles);
- sysLibraryCollector = new SystemLibraryCollector(
- selectedLinker, sysLibraries);
- //
- // if the <linker> has embedded <fileset>'s
- // (such as linker specific libraries)
- // add them as object files.
- //
- if (currentLinkerDef.hasFileSets()) {
- currentLinkerDef.visitFiles(objCollector);
- }
- //
- // user libraries are just a specialized form
- // of an object fileset
- selectedLinkerDef.visitUserLibraries(selectedLinker,
- objCollector);
- }
- break;
- }
- }
- }
- if (linkerConfig == null) {
- linkerConfig = linkerDef.createConfiguration(this, linkType, null,
- targetPlatform);
- selectedLinker = (Linker) linkerDef.getProcessor().getLinker(
- linkType);
- objCollector = new ObjectFileCollector(selectedLinker, objectFiles);
- sysLibraryCollector = new SystemLibraryCollector(selectedLinker,
- sysLibraries);
- }
- //
- // unless there was a <linker> element that
- // explicitly did not inherit files from
- // containing <cc> element
- if (selectedLinkerDef == null || selectedLinkerDef.getInherit()) {
- linkerDef.visitUserLibraries(selectedLinker, objCollector);
- linkerDef.visitSystemLibraries(selectedLinker, sysLibraryCollector);
- }
- //
- // if there was a <syslibset> in a nested <linker>
- // evaluate it last so it takes priority over
- // identically named libs from <cc> element
- //
- if (selectedLinkerDef != null) {
- //
- // add any system libraries to the hashtable
- // done in reverse order so the earliest
- // on the classpath takes priority
- selectedLinkerDef.visitSystemLibraries(selectedLinker,
- sysLibraryCollector);
- }
- //
- // copy over any system libraries to the
- // object files vector
- //
- Enumeration sysLibEnum = sysLibraries.elements();
- while (sysLibEnum.hasMoreElements()) {
- sysObjectFiles.addElement(sysLibEnum.nextElement());
- }
- return (LinkerConfiguration) linkerConfig;
- }
-
- /**
- * Adds an include path.
- *
- * Include paths will be inherited by nested compiler elements that do not
- * have inherit="false".
- */
- public IncludePath createIncludePath() {
- return compilerDef.createIncludePath();
- }
-
- /**
- * Specifies precompilation prototype file and exclusions. Inherited by all
- * compilers that do not have inherit="false".
- *
- */
- public PrecompileDef createPrecompile() throws BuildException {
- return compilerDef.createPrecompile();
- }
-
- /**
- * Adds a system include path. Locations and timestamps of files located
- * using the system include paths are not used in dependency analysis.
- *
- *
- * Standard include locations should not be specified. The compiler adapters
- * should recognized the settings from the appropriate environment variables
- * or configuration files.
- *
- * System include paths will be inherited by nested compiler elements that
- * do not have inherit="false".
- */
- public SystemIncludePath createSysIncludePath() {
- return compilerDef.createSysIncludePath();
- }
-
- /**
- * Executes the task. Compiles the given files.
- *
- * @throws BuildException
- * if someting goes wrong with the build
- */
- public void execute() throws BuildException {
- //
- // if link type allowed objdir to be defaulted
- // provide it from outfile
- if (_objDir == null) {
- if (_outfile != null) {
- _objDir = new File(_outfile.getParent());
- } else {
- _objDir = new File(".");
- }
- }
-
- //
- // if the object directory does not exist
- //
- if (!_objDir.exists()) {
- throw new BuildException("Object directory does not exist");
- }
-
- //
- // if userdefine is true, then run all user defined command
- //
- if (userdefine) {
- Iterator iter = _userdefines.iterator();
- while( iter.hasNext()) {
- UserDefineDef userdefineDef = (UserDefineDef)iter.next();
- UserDefineCompiler userdefineCompiler = new UserDefineCompiler(this, userdefineDef);
- userdefineCompiler.command(this, userdefineDef);
- }
- return ;
- }
-
- TargetHistoryTable objHistory = new TargetHistoryTable(this, _objDir);
- //
- // determine the eventual linker configuration
- // (may be null) and collect any explicit
- // object files or libraries
- Vector objectFiles = new Vector();
- Vector sysObjectFiles = new Vector();
- LinkerConfiguration linkerConfig = collectExplicitObjectFiles(
- objectFiles, sysObjectFiles);
- //
- // Assembler hashtable of all files
- // that we know how to compile (keyed by output file name)
- //
- Hashtable targets = getTargets(linkerConfig, objectFiles);
- Hashtable acpiTarget = new Hashtable();
- if (aslcompiler) {
- acpiTarget = getAcpiTargets(linkerConfig, new Vector());
- }
- Hashtable assemblerTarget = new Hashtable();
- if (assembler) {
- assemblerTarget = getAssemblerTargets(linkerConfig, objectFiles);
- }
- TargetInfo linkTarget = null;
- //
- // if output file is not specified,
- // then skip link step
- //
- if (_outfile != null) {
- linkTarget = getLinkTarget(linkerConfig, objectFiles,
- sysObjectFiles, targets, assemblerTarget);
- }
- //
- // If specify the aslcompiler, then call asl compiler
- //
- if (aslcompiler) {
- BuildException acpiException = null;
- Hashtable targetsByConfig = getTargetsToBuildByConfiguration(acpiTarget);
- Enumeration acpiTargetEnum = targetsByConfig.elements();
- Vector[] targetVectors = new Vector[targetsByConfig.size()];
- int index = 0;
- while (acpiTargetEnum.hasMoreElements()) {
- Vector targetsForConfig = (Vector) acpiTargetEnum.nextElement();
- targetVectors[index++] = targetsForConfig;
- }
- for (int i = 0; i < targetVectors.length; i++) {
- //
- // get the targets for this configuration
- //
- Vector targetsForConfig = targetVectors[i];
- //
- // get the configuration from the first entry
- //
- AslcompilerConfiguration config = (AslcompilerConfiguration) ((TargetInfo) targetsForConfig
- .elementAt(0)).getConfiguration();
- //
- // prepare the list of source files
- //
- String[] sourceFiles = new String[targetsForConfig.size()];
- Enumeration targetsEnum = targetsForConfig.elements();
- index = 0;
- while (targetsEnum.hasMoreElements()) {
- TargetInfo targetInfo = ((TargetInfo) targetsEnum
- .nextElement());
- sourceFiles[index++] = targetInfo.getSources()[0]
- .toString();
- }
- try {
- config.aslcompiler(this, _objDir, sourceFiles);
- log(sourceFiles.length
- + " total ACPI source files to be compiled.");
- } catch (BuildException ex) {
- if (acpiException == null) {
- acpiException = ex;
- }
- if (!relentless)
- break;
- }
- }
- }
- //
- // If specify the assembler, then call assembler
- //
- if (assembler) {
- BuildException assemblerException = null;
- Hashtable targetsByConfig = getTargetsToBuildByConfiguration(assemblerTarget);
- Enumeration assembleTargetEnum = targetsByConfig.elements();
- Vector[] targetVectors = new Vector[targetsByConfig.size()];
- int index = 0;
- while (assembleTargetEnum.hasMoreElements()) {
- Vector targetsForConfig = (Vector) assembleTargetEnum
- .nextElement();
- targetVectors[index++] = targetsForConfig;
- }
- for (int i = 0; i < targetVectors.length; i++) {
- //
- // get the targets for this configuration
- //
- Vector targetsForConfig = targetVectors[i];
- //
- // get the configuration from the first entry
- //
- AssemblerConfiguration config = (AssemblerConfiguration) ((TargetInfo) targetsForConfig
- .elementAt(0)).getConfiguration();
- //
- // prepare the list of source files
- //
- String[] sourceFiles = new String[targetsForConfig.size()];
- Enumeration targetsEnum = targetsForConfig.elements();
- index = 0;
- while (targetsEnum.hasMoreElements()) {
- TargetInfo targetInfo = ((TargetInfo) targetsEnum
- .nextElement());
- sourceFiles[index++] = targetInfo.getSources()[0]
- .toString();
- }
- try {
- config.assembler(this, _objDir, sourceFiles);
- log(sourceFiles.length + " total files to be assembled.");
- } catch (BuildException ex) {
- if (assemblerException == null) {
- assemblerException = ex;
- }
- if (!relentless)
- break;
- }
- }
- //
- // if we threw a assembler exception and
- // didn't throw it at the time because
- // we were relentless then
- // save the history and
- // throw the exception
- //
- if (assemblerException != null) {
- if (failOnError) {
- throw assemblerException;
- } else {
- log(assemblerException.getMessage(), Project.MSG_ERR);
- return;
- }
- }
- }
-
- //
- // mark targets that don't have a history record or
- // whose source last modification time is not
- // the same as the history to be rebuilt
- //
- objHistory.markForRebuild(targets);
- CCTaskProgressMonitor monitor = new CCTaskProgressMonitor(objHistory);
- //
- // check for changed include files
- //
- int rebuildCount = checkForChangedIncludeFiles(targets);
- if (rebuildCount > 0) {
- BuildException compileException = null;
- //
- // compile all targets with getRebuild() == true
- //
- Hashtable targetsByConfig = getTargetsToBuildByConfiguration(targets);
- //
- // build array containing Vectors with precompiled generation
- // steps going first
- //
- Vector[] targetVectors = new Vector[targetsByConfig.size()];
- int index = 0;
- Enumeration targetVectorEnum = targetsByConfig.elements();
- while (targetVectorEnum.hasMoreElements()) {
- Vector targetsForConfig = (Vector) targetVectorEnum
- .nextElement();
- //
- // get the configuration from the first entry
- //
- CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig
- .elementAt(0)).getConfiguration();
- if (config.isPrecompileGeneration()) {
- targetVectors[index++] = targetsForConfig;
- }
- }
- targetVectorEnum = targetsByConfig.elements();
- while (targetVectorEnum.hasMoreElements()) {
- Vector targetsForConfig = (Vector) targetVectorEnum
- .nextElement();
- for (int i = 0; i < targetVectors.length; i++) {
- if (targetVectors[i] == targetsForConfig) {
- break;
- }
- if (targetVectors[i] == null) {
- targetVectors[i] = targetsForConfig;
- break;
- }
- }
- }
- for (int i = 0; i < targetVectors.length; i++) {
- //
- // get the targets for this configuration
- //
- Vector targetsForConfig = targetVectors[i];
- //
- // get the configuration from the first entry
- //
- CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig
- .elementAt(0)).getConfiguration();
- //
- // prepare the list of source files
- //
- String[] sourceFiles = new String[targetsForConfig.size()];
- Enumeration targetsEnum = targetsForConfig.elements();
- index = 0;
- while (targetsEnum.hasMoreElements()) {
- TargetInfo targetInfo = ((TargetInfo) targetsEnum
- .nextElement());
- sourceFiles[index++] = targetInfo.getSources()[0]
- .toString();
- }
- try {
- config.compile(this, _objDir, sourceFiles, relentless,
- monitor);
- } catch (BuildException ex) {
- if (compileException == null) {
- compileException = ex;
- }
- if (!relentless)
- break;
- }
- }
- //
- // save the details of the object file compilation
- // settings to disk for dependency analysis
- //
- try {
- objHistory.commit();
- } catch (IOException ex) {
- this.log("Error writing history.xml: " + ex.toString());
- }
- //
- // if we threw a compile exception and
- // didn't throw it at the time because
- // we were relentless then
- // save the history and
- // throw the exception
- //
- if (compileException != null) {
- if (failOnError) {
- throw compileException;
- } else {
- log(compileException.getMessage(), Project.MSG_ERR);
- return;
- }
- }
- }
- //
- // if the dependency tree was not fully
- // evaluated, then throw an exception
- // since we really didn't do what we
- // should have done
- //
- //
- if (dependencyDepth >= 0) {
- throw new BuildException(
- "All files at depth "
- + Integer.toString(dependencyDepth)
- + " from changes successfully compiled.\n"
- + "Remove or change dependencyDepth to -1 to perform full compilation.");
- }
- //
- // if no link target then
- // commit the history for the object files
- // and leave the task
- if (linkTarget != null) {
- //
- // get the history for the link target (may be the same
- // as the object history)
- TargetHistoryTable linkHistory = getLinkHistory(objHistory);
- //
- // see if it needs to be rebuilt
- //
- linkHistory.markForRebuild(linkTarget);
- //
- // if it needs to be rebuilt, rebuild it
- //
- File output = linkTarget.getOutput();
- if (linkTarget.getRebuild()) {
- log("Starting link");
- LinkerConfiguration linkConfig = (LinkerConfiguration) linkTarget
- .getConfiguration();
- if (failOnError) {
- linkConfig.link(this, linkTarget);
- } else {
- try {
- linkConfig.link(this, linkTarget);
- } catch (BuildException ex) {
- log(ex.getMessage(), Project.MSG_ERR);
- return;
- }
- }
- if (outputFileProperty != null)
- getProject().setProperty(outputFileProperty,
- output.getAbsolutePath());
- linkHistory.update(linkTarget);
- try {
- linkHistory.commit();
- } catch (IOException ex) {
- log("Error writing link history.xml: " + ex.toString());
- }
- } else {
- if (outputFileProperty != null)
- getProject().setProperty(outputFileProperty,
- output.getAbsolutePath());
- }
- }
- }
-
- /**
- * Gets the dataset.
- *
- * @return Returns a String
- */
- public String getDataset() {
- return dataset;
- }
-
- protected TargetHistoryTable getLinkHistory(TargetHistoryTable objHistory) {
- File outputFileDir = new File(_outfile.getParent());
- //
- // if the output file is being produced in the link
- // directory, then we can use the same history file
- //
- if (_objDir.equals(outputFileDir)) {
- return objHistory;
- }
- return new TargetHistoryTable(this, outputFileDir);
- }
-
- protected TargetInfo getLinkTarget(LinkerConfiguration linkerConfig,
- Vector objectFiles, Vector sysObjectFiles,
- Hashtable compileTargets, Hashtable assemblerTargets) {
- //
- // walk the compile phase targets and
- // add those sources that have already been
- // assigned to the linker or
- // our output files the linker knows how to consume
- // files the linker knows how to consume
- //
- Enumeration compileTargetsEnum = compileTargets.elements();
- while (compileTargetsEnum.hasMoreElements()) {
- TargetInfo compileTarget = (TargetInfo) compileTargetsEnum
- .nextElement();
- //
- // output of compile tasks
- //
- int bid = linkerConfig.bid(compileTarget.getOutput().toString());
- if (bid > 0) {
- objectFiles.addElement(compileTarget.getOutput());
- }
- }
- //
- // walk the assembler phase targets and
- // add those sources that have already been
- // assigned to the linker or
- // our output files the linker knows how to consume
- // files the linker knows how to consume
- //
- Enumeration assembleTargetsEnum = assemblerTargets.elements();
- while (assembleTargetsEnum.hasMoreElements()) {
- TargetInfo assemblerTarget = (TargetInfo) assembleTargetsEnum
- .nextElement();
- //
- // output of assemble tasks
- //
- int bid = linkerConfig.bid(assemblerTarget.getOutput().toString());
- if (bid > 0) {
- objectFiles.addElement(assemblerTarget.getOutput());
- }
- }
- File[] objectFileArray = new File[objectFiles.size()];
- objectFiles.copyInto(objectFileArray);
- File[] sysObjectFileArray = new File[sysObjectFiles.size()];
- sysObjectFiles.copyInto(sysObjectFileArray);
- String baseName = _outfile.getName();
- String fullName = linkerConfig.getOutputFileName(baseName);
- File outputFile = new File(_outfile.getParent(), fullName);
- return new TargetInfo(linkerConfig, objectFileArray,
- sysObjectFileArray, outputFile, linkerConfig
- .getRebuild());
- }
-
- public File getObjdir() {
- return _objDir;
- }
-
- public File getOutfile() {
- return _outfile;
- }
-
- public TargetDef getTargetPlatform() {
- return null;
- }
-
- /**
- * This method collects a Hashtable, keyed by output file name, of
- * TargetInfo's for every source file that is specified in the filesets of
- * the <aslcompiler> elements. The TargetInfo's contain the appropriate ACPI
- * configurations for their possible acpi
- *
- */
- private Hashtable getAcpiTargets(LinkerConfiguration linkerConfig,
- Vector objectFiles) {
- Hashtable targets = new Hashtable(1000);
- TargetDef targetPlatform = getTargetPlatform();
- Vector biddingProcessors = new Vector(_aslcompiler.size());
- for (int i = 0; i < _aslcompiler.size(); i++) {
- AslcompilerDef currentAslDef = (AslcompilerDef) _aslcompiler
- .elementAt(i);
- if (currentAslDef.isActive()) {
- ProcessorConfiguration config = currentAslDef
- .createConfiguration(this, linkType,
- aslcompilerDef, targetPlatform);
- //
- // if the aslcompiler has a fileset
- // then allow it to add its files to
- // the set of potential targets
- //
- ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config };
- if (currentAslDef.hasFileSets()) {
- TargetMatcher matcher = new TargetMatcher(this, _objDir,
- localConfigs, linkerConfig, objectFiles,
- targets);
- currentAslDef.visitFiles(matcher);
- }
- biddingProcessors.addElement(config);
- }
- }
- //
- // add fallback compiler at the end
- //
- ProcessorConfiguration config = aslcompilerDef.createConfiguration(
- this, linkType, null, targetPlatform);
- biddingProcessors.addElement(config);
- ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors
- .size()];
- biddingProcessors.copyInto(bidders);
- TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders,
- linkerConfig, objectFiles, targets);
- aslcompilerDef.visitFiles(matcher);
- return targets;
- }
-
- /**
- * This method collects a Hashtable, keyed by output file name, of
- * TargetInfo's for every source file that is specified in the filesets of
- * the <assembler> elements. The TargetInfo's contain the appropriate
- * assembler configurations for their possible assembly
- *
- */
- private Hashtable getAssemblerTargets(LinkerConfiguration linkerConfig,
- Vector objectFiles) {
- Hashtable targets = new Hashtable(1000);
- TargetDef targetPlatform = getTargetPlatform();
- Vector biddingProcessors = new Vector(_assemblers.size());
- for (int i = 0; i < _assemblers.size(); i++) {
- AssemblerDef currentAssemblerDef = (AssemblerDef) _assemblers
- .elementAt(i);
- if (currentAssemblerDef.isActive()) {
- ProcessorConfiguration config = currentAssemblerDef
- .createConfiguration(this, linkType,
- assemblerDef, targetPlatform);
- //
- // if the assembler has a fileset
- // then allow it to add its files to
- // the set of potential targets
- //
- ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config };
- if (currentAssemblerDef.hasFileSets()) {
- TargetMatcher matcher = new TargetMatcher(this, _objDir,
- localConfigs, linkerConfig, objectFiles,
- targets);
- currentAssemblerDef.visitFiles(matcher);
- }
- biddingProcessors.addElement(config);
- }
- }
- //
- // add fallback assembler at the end
- //
- ProcessorConfiguration config = assemblerDef.createConfiguration(this,
- linkType, null, targetPlatform);
- biddingProcessors.addElement(config);
- ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors
- .size()];
- biddingProcessors.copyInto(bidders);
- TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders,
- linkerConfig, objectFiles, targets);
- assemblerDef.visitFiles(matcher);
- return targets;
- }
-
- /**
- * This method collects a Hashtable, keyed by output file name, of
- * TargetInfo's for every source file that is specified in the filesets of
- * the <cc>and nested <compiler>elements. The TargetInfo's contain the
- * appropriate compiler configurations for their possible compilation
- *
- */
- private Hashtable getTargets(LinkerConfiguration linkerConfig,
- Vector objectFiles) {
- Hashtable targets = new Hashtable(1000);
- TargetDef targetPlatform = getTargetPlatform();
- //
- // find active (specialized) compilers
- //
- Vector biddingProcessors = new Vector(_compilers.size());
- for (int i = 0; i < _compilers.size(); i++) {
- CompilerDef currentCompilerDef = (CompilerDef) _compilers
- .elementAt(i);
- if (currentCompilerDef.isActive()) {
- ProcessorConfiguration config = currentCompilerDef
- .createConfiguration(this, linkType,
- compilerDef, targetPlatform);
- //
- // see if this processor had a precompile child element
- //
- PrecompileDef precompileDef = currentCompilerDef
- .getActivePrecompile(compilerDef);
- ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config };
- //
- // if it does then
- //
- if (precompileDef != null) {
- File prototype = precompileDef.getPrototype();
- //
- // will throw exceptions if prototype doesn't exist, etc
- //
- if (!prototype.exists()) {
- throw new BuildException("prototype ("
- + prototype.toString()
- + ") does not exist.");
- }
- if (prototype.isDirectory()) {
- throw new BuildException("prototype ("
- + prototype.toString()
- + ") is a directory.");
- }
- String[] exceptFiles = precompileDef.getExceptFiles();
- //
- // create a precompile building and precompile using
- // variants of the configuration
- // or return null if compiler doesn't support
- // precompilation
- CompilerConfiguration[] configs = ((CompilerConfiguration) config)
- .createPrecompileConfigurations(prototype,
- exceptFiles);
- if (configs != null && configs.length == 2) {
- //
- // visit the precompiled file to add it into the
- // targets list (just like any other file if
- // compiler doesn't support precompilation)
- TargetMatcher matcher = new TargetMatcher(
- this,
- _objDir,
- new ProcessorConfiguration[] { configs[0] },
- linkerConfig, objectFiles, targets);
- matcher.visit(new File(prototype.getParent()),
- prototype.getName());
- //
- // only the configuration that uses the
- // precompiled header gets added to the bidding list
- biddingProcessors.addElement(configs[1]);
- localConfigs = new ProcessorConfiguration[2];
- localConfigs[0] = configs[1];
- localConfigs[1] = config;
- }
- }
- //
- // if the compiler has a fileset
- // then allow it to add its files
- // to the set of potential targets
- if (currentCompilerDef.hasFileSets()) {
- TargetMatcher matcher = new TargetMatcher(this, _objDir,
- localConfigs, linkerConfig, objectFiles,
- targets);
- currentCompilerDef.visitFiles(matcher);
- }
- biddingProcessors.addElement(config);
- }
- }
- //
- // add fallback compiler at the end
- //
- ProcessorConfiguration config = compilerDef.createConfiguration(this,
- linkType, null, targetPlatform);
- biddingProcessors.addElement(config);
- ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors
- .size()];
- biddingProcessors.copyInto(bidders);
- //
- // bid out the <fileset>'s in the cctask
- //
- TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders,
- linkerConfig, objectFiles, targets);
- compilerDef.visitFiles(matcher);
- return targets;
- }
-
- /**
- * Sets the default compiler adapter. Use the "name" attribute when the
- * compiler is a supported compiler.
- *
- * @param classname
- * fully qualified classname which implements CompilerAdapter
- */
- public void setClassname(String classname) {
- compilerDef.setClassname(classname);
- linkerDef.setClassname(classname);
- assemblerDef.setClassname(classname);
- aslcompilerDef.setClassname(classname);
- }
-
- /**
- * Sets the dataset for OS/390 builds.
- *
- * @param dataset
- * The dataset to set
- */
- public void setDataset(String dataset) {
- this.dataset = dataset;
- }
-
- /**
- * Enables or disables generation of debug info.
- */
- public void setDebug(boolean debug) {
- compilerDef.setDebug(debug);
- linkerDef.setDebug(debug);
- assemblerDef.setDebug(debug);
- aslcompilerDef.setDebug(debug);
- }
-
- /**
- * Deprecated.
- *
- * Controls the depth of the dependency evaluation. Used to do a quick check
- * of changes before a full build.
- *
- * Any negative value which will perform full dependency checking. Positive
- * values will truncate dependency checking. A value of 0 will cause only
- * those files that changed to be recompiled, a value of 1 which cause files
- * that changed or that explicitly include a file that changed to be
- * recompiled.
- *
- * Any non-negative value will cause a BuildException to be thrown before
- * attempting a link or completing the task.
- *
- */
- public void setDependencyDepth(int depth) {
- dependencyDepth = depth;
- }
-
- /**
- * Enables generation of exception handling code
- */
- public void setExceptions(boolean exceptions) {
- compilerDef.setExceptions(exceptions);
- }
-
- /**
- * Enables run-time type information.
- */
- public void setRtti(boolean rtti) {
- compilerDef.setRtti(rtti);
- }
-
- // public LinkType getLinkType() {
- // return linkType;
- // }
- /**
- * Enables or disables incremental linking.
- *
- * @param incremental
- * new state
- */
- public void setIncremental(boolean incremental) {
- linkerDef.setIncremental(incremental);
- }
-
- /**
- * Set use of libtool.
- *
- * If set to true, the "libtool " will be prepended to the command line for
- * compatible processors
- *
- * @param libtool
- * If true, use libtool.
- */
- public void setLibtool(boolean libtool) {
- compilerDef.setLibtool(libtool);
- linkerDef.setLibtool(libtool);
- assemblerDef.setLibtool(libtool);
- aslcompilerDef.setLibtool(libtool);
- }
-
- /**
- * Sets the output file type. Supported values "executable", "shared", and
- * "static". Deprecated, specify outtype instead.
- *
- * @deprecated
- */
- public void setLink(OutputTypeEnum outputType) {
- linkType.setOutputType(outputType);
- }
-
- /**
- * Enables or disables generation of multithreaded code
- *
- * @param multi
- * If true, generated code may be multithreaded.
- */
- public void setMultithreaded(boolean multi) {
- compilerDef.setMultithreaded(multi);
- }
-
- //
- // keep near duplicate comment at CompilerDef.setName in sync
- //
- /**
- * Sets type of the default compiler and linker.
- *
- * <table width="100%" border="1"> <thead>Supported compilers </thead>
- * <tr>
- * <td>gcc (default)</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>c++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g77</td>
- * <td>GNU FORTRAN compiler</td>
- * </tr>
- * <tr>
- * <td>msvc</td>
- * <td>Microsoft Visual C++</td>
- * </tr>
- * <tr>
- * <td>bcc</td>
- * <td>Borland C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>msrc</td>
- * <td>Microsoft Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>brc</td>
- * <td>Borland Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>df</td>
- * <td>Compaq Visual Fortran Compiler</td>
- * </tr>
- * <tr>
- * <td>midl</td>
- * <td>Microsoft MIDL Compiler</td>
- * </tr>
- * <tr>
- * <td>icl</td>
- * <td>Intel C++ compiler for Windows (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecl</td>
- * <td>Intel C++ compiler for Windows (IA-64)</td>
- * </tr>
- * <tr>
- * <td>icc</td>
- * <td>Intel C++ compiler for Linux (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecc</td>
- * <td>Intel C++ compiler for Linux (IA-64)</td>
- * </tr>
- * <tr>
- * <td>CC</td>
- * <td>Sun ONE C++ compiler</td>
- * </tr>
- * <tr>
- * <td>aCC</td>
- * <td>HP aC++ C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>os390</td>
- * <td>OS390 C Compiler</td>
- * </tr>
- * <tr>
- * <td>os400</td>
- * <td>Icc Compiler</td>
- * </tr>
- * <tr>
- * <td>sunc89</td>
- * <td>Sun C89 C Compiler</td>
- * </tr>
- * <tr>
- * <td>xlC</td>
- * <td>VisualAge C Compiler</td>
- * </tr>
- * </table>
- *
- */
- public void setName(CompilerEnum name) {
- compilerDef.setName(name);
- Processor compiler = compilerDef.getProcessor();
- Linker linker = compiler.getLinker(linkType);
- linkerDef.setProcessor(linker);
- }
-
- /**
- * Do not propagate old environment when new environment variables are
- * specified.
- */
- public void setNewenvironment(boolean newenv) {
- compilerDef.setNewenvironment(newenv);
- linkerDef.setNewenvironment(newenv);
- assemblerDef.setNewenvironment(newenv);
- aslcompilerDef.setNewenvironment(newenv);
- }
-
- /**
- * Sets the destination directory for object files.
- *
- * Generally this should be a property expression that evaluates to distinct
- * debug and release object file directories.
- *
- * @param dir
- * object directory
- */
- public void setObjdir(File dir) {
- if (dir == null) {
- throw new NullPointerException("dir");
- }
- _objDir = dir;
- }
-
- /**
- * Sets the output file name. If not specified, the task will only compile
- * files and not attempt to link. If an extension is not specified, the task
- * may use a system appropriate extension and prefix, for example,
- * outfile="example" may result in "libexample.so" being created.
- *
- * @param outfile
- * output file name
- */
- public void setOutfile(File outfile) {
- //
- // if file name was empty, skip link step
- //
- if (outfile == null || outfile.toString().length() > 0) {
- _outfile = outfile;
- }
- }
-
- /**
- * Specifies the name of a property to set with the physical filename that
- * is produced by the linker
- */
- public void setOutputFileProperty(String outputFileProperty) {
- this.outputFileProperty = outputFileProperty;
- }
-
- /**
- * Sets the output file type. Supported values "executable", "shared", and
- * "static".
- */
- public void setOuttype(OutputTypeEnum outputType) {
- linkType.setOutputType(outputType);
- }
-
- /**
- * Sets the project.
- */
- public void setProject(Project project) {
- super.setProject(project);
- compilerDef.setProject(project);
- linkerDef.setProject(project);
- assemblerDef.setProject(project);
- aslcompilerDef.setProject(project);
- }
-
- /**
- * If set to true, all files will be rebuilt.
- *
- * @paran rebuildAll If true, all files will be rebuilt. If false, up to
- * date files will not be rebuilt.
- */
- public void setRebuild(boolean rebuildAll) {
- compilerDef.setRebuild(rebuildAll);
- linkerDef.setRebuild(rebuildAll);
- assemblerDef.setRebuild(rebuildAll);
- aslcompilerDef.setRebuild(rebuildAll);
- }
-
- /**
- * If set to true, compilation errors will not stop the task until all files
- * have been attempted.
- *
- * @param relentless
- * If true, don't stop on the first compilation error
- *
- */
- public void setRelentless(boolean relentless) {
- this.relentless = relentless;
- }
-
- /**
- * Sets the type of runtime library, possible values "dynamic", "static".
- */
- public void setRuntime(RuntimeType rtlType) {
- linkType.setStaticRuntime((rtlType.getIndex() == 1));
- }
-
- /**
- * Sets the nature of the subsystem under which that the program will
- * execute.
- *
- * <table width="100%" border="1"> <thead>Supported subsystems </thead>
- * <tr>
- * <td>gui</td>
- * <td>Graphical User Interface</td>
- * </tr>
- * <tr>
- * <td>console</td>
- * <td>Command Line Console</td>
- * </tr>
- * <tr>
- * <td>other</td>
- * <td>Other</td>
- * </tr>
- * </table>
- *
- * @param subsystem
- * subsystem
- * @throws NullPointerException
- * if subsystem is null
- */
- public void setSubsystem(SubsystemEnum subsystem) {
- if (subsystem == null) {
- throw new NullPointerException("subsystem");
- }
- linkType.setSubsystem(subsystem);
- }
-
- /**
- * Enumerated attribute with the values "none", "severe", "default",
- * "production", "diagnostic", and "failtask".
- */
- public void setWarnings(CompilerDef.WarningLevel level) {
- compilerDef.setWarnings(level);
- }
-
- /**
- * Indicates whether the build will continue even if there are compilation
- * errors; defaults to true.
- *
- * @param fail
- * if true halt the build on failure
- */
- public void setFailonerror(boolean fail) {
- failOnError = fail;
- }
-
- /**
- * Gets the failonerror flag.
- *
- * @return the failonerror flag
- */
- public boolean getFailonerror() {
- return failOnError;
- }
-
- /**
- * Adds descriptive version information to be included in the generated
- * file. The first active version info block will be used. (Non-functional
- * prototype)
- */
- public void addConfiguredVersioninfo(VersionInfo info) {
- linkerDef.addConfiguredVersioninfo(info);
- }
-
- /**
- * Adds a target definition or reference (Non-functional prototype).
- *
- * @param target
- * target
- * @throws NullPointerException
- * if compiler is null
- */
- public void addConfiguredTarget(TargetDef target) {
- if (target == null) {
- throw new NullPointerException("target");
- }
- target.setProject(getProject());
- targetPlatforms.addElement(target);
- }
-
- /**
- * Adds a distributer definition or reference (Non-functional prototype).
- *
- * @param distributer
- * distributer
- * @throws NullPointerException
- * if compiler is null
- */
- public void addConfiguredDistributer(DistributerDef distributer) {
- if (distributer == null) {
- throw new NullPointerException("distributer");
- }
- distributer.setProject(getProject());
- distributers.addElement(distributer);
- }
-
- /**
- * Sets optimization.
- * @param optimization
- */
- public void setOptimize(OptimizationEnum optimization) {
- compilerDef.setOptimize(optimization);
- }
-
- public boolean isAssembler() {
- return assembler;
- }
-
- public void setAssembler(boolean assembler) {
- this.assembler = assembler;
- }
-
- public boolean isAslcompiler() {
- return aslcompiler;
- }
-
- public void setAslcompiler(boolean aslcompiler) {
- this.aslcompiler = aslcompiler;
- }
-
- public boolean isUserdefine() {
- return userdefine;
- }
-
- public void setUserdefine(boolean userdefine) {
- this.userdefine = userdefine;
- }
-
- public String getArch() {
- return arch;
- }
-
- public void setArch(String arch) {
- this.arch = arch;
- }
-
- public String getOs() {
- return os;
- }
-
- public void setOs(String os) {
- this.os = os;
- }
-
- public String getVendor() {
- return vendor;
- }
-
- public void setVendor(String vendor) {
- this.vendor = vendor;
- }
-
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java deleted file mode 100644 index 78192a5ba7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CCTaskProgressMonitor.java +++ /dev/null @@ -1,56 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.IOException;
-
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor;
-public class CCTaskProgressMonitor implements ProgressMonitor {
- private ProcessorConfiguration config;
- private TargetHistoryTable history;
- private long lastCommit = -1;
- public CCTaskProgressMonitor(TargetHistoryTable history) {
- this.history = history;
- }
- public void finish(ProcessorConfiguration config, boolean normal) {
- long current = System.currentTimeMillis();
- if ((current - lastCommit) > 120000) {
- try {
- history.commit();
- lastCommit = System.currentTimeMillis();
- } catch (IOException ex) {
- }
- }
- }
- public void progress(String[] sources) {
- history.update(config, sources);
- long current = System.currentTimeMillis();
- if ((current - lastCommit) > 120000) {
- try {
- history.commit();
- lastCommit = current;
- } catch (IOException ex) {
- }
- }
- }
- public void start(ProcessorConfiguration config) {
- if (lastCommit < 0) {
- lastCommit = System.currentTimeMillis();
- }
- this.config = config;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java deleted file mode 100644 index ba73902361..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CPUEnum.java +++ /dev/null @@ -1,71 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Enumeration of cpu types.
- *
- * @author Curt Arnold
- *
- */
-public final class CPUEnum
- extends EnumeratedAttribute {
-
- /**
- * Constructor.
- *
- * Set by default to "pentium3"
- *
- * @see java.lang.Object#Object()
- */
- public CPUEnum() {
- setValue("pentium3");
- }
-
- /**
- * Gets list of acceptable values.
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- return new String[] {
- "i386",
- "i486",
- "i586",
- "i686",
- "pentium",
- "pentium-mmx",
- "pentiumpro",
- "pentium2",
- "pentium3",
- "pentium4",
- "k6",
- "k6-2",
- "k6-3",
- "athlon",
- "athlon-tbird",
- "athlon-4",
- "athlon-xp",
- "athlon-mp",
- "winchip-c6",
- "winchip2",
- "c3" };
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java deleted file mode 100644 index 074e8b42f8..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CUtil.java +++ /dev/null @@ -1,461 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.Execute;
-import org.apache.tools.ant.taskdefs.LogStreamHandler;
-import org.apache.tools.ant.types.Commandline;
-import org.apache.tools.ant.types.Environment;
-/**
- * Some utilities used by the CC and Link tasks.
- *
- * @author Adam Murdoch
- */
-public class CUtil {
- /**
- * A class that splits a white-space, comma-separated list into a String
- * array. Used for task attributes.
- */
- public static final class StringArrayBuilder {
- private String[] _value;
- public StringArrayBuilder(String value) {
- // Split the defines up
- StringTokenizer tokens = new StringTokenizer(value, ", ");
- Vector vallist = new Vector();
- while (tokens.hasMoreTokens()) {
- String val = tokens.nextToken().trim();
- if (val.length() == 0) {
- continue;
- }
- vallist.addElement(val);
- }
- _value = new String[vallist.size()];
- vallist.copyInto(_value);
- }
- public String[] getValue() {
- return _value;
- }
- }
- /**
- * Adds the elements of the array to the given vector
- */
- public static void addAll(Vector dest, Object[] src) {
- if (src == null) {
- return;
- }
- for (int i = 0; i < src.length; i++) {
- dest.addElement(src[i]);
- }
- }
- /**
- * Checks a array of names for non existent or non directory entries and
- * nulls them out.
- *
- * @return Count of non-null elements
- */
- public static int checkDirectoryArray(String[] names) {
- int count = 0;
- for (int i = 0; i < names.length; i++) {
- if (names[i] != null) {
- File dir = new File(names[i]);
- if (dir.exists() && dir.isDirectory()) {
- count++;
- } else {
- names[i] = null;
- }
- }
- }
- return count;
- }
- /**
- * Extracts the basename of a file, removing the extension, if present
- */
- public static String getBasename(File file) {
- String path = file.getPath();
- // Remove the extension
- String basename = file.getName();
- int pos = basename.lastIndexOf('.');
- if (pos != -1) {
- basename = basename.substring(0, pos);
- }
- return basename;
- }
- /**
- * Gets the parent directory for the executable file name using the current
- * directory and system executable path
- *
- * @param exeName
- * Name of executable such as "cl.exe"
- * @return parent directory or null if not located
- */
- public static File getExecutableLocation(String exeName) {
- //
- // must add current working directory to the
- // from of the path from the "path" environment variable
- File currentDir = new File(System.getProperty("user.dir"));
- if (new File(currentDir, exeName).exists()) {
- return currentDir;
- }
- File[] envPath = CUtil.getPathFromEnvironment("PATH",
- File.pathSeparator);
- for (int i = 0; i < envPath.length; i++) {
- if (new File(envPath[i], exeName).exists()) {
- return envPath[i];
- }
- }
- return null;
- }
- /**
- * Extracts the parent of a file
- */
- public static String getParentPath(String path) {
- int pos = path.lastIndexOf(File.separator);
- if (pos <= 0) {
- return null;
- }
- return path.substring(0, pos);
- }
- /**
- * Returns an array of File for each existing directory in the specified
- * environment variable
- *
- * @param envVariable
- * environment variable name such as "LIB" or "INCLUDE"
- * @param delim
- * delimitor used to separate parts of the path, typically ";"
- * or ":"
- * @return array of File's for each part that is an existing directory
- */
- public static File[] getPathFromEnvironment(String envVariable, String delim) {
- // OS/4000 does not support the env command.
- if (System.getProperty("os.name").equals("OS/400"))
- return new File[]{};
- Vector osEnv = Execute.getProcEnvironment();
- String match = envVariable.concat("=");
- for (Enumeration e = osEnv.elements(); e.hasMoreElements();) {
- String entry = ((String) e.nextElement()).trim();
- if (entry.length() > match.length()) {
- String entryFrag = entry.substring(0, match.length());
- if (entryFrag.equalsIgnoreCase(match)) {
- String path = entry.substring(match.length());
- return parsePath(path, delim);
- }
- }
- }
- File[] noPath = new File[0];
- return noPath;
- }
- /**
- * Returns a relative path for the targetFile relative to the base
- * directory.
- *
- * @param canonicalBase
- * base directory as returned by File.getCanonicalPath()
- * @param targetFile
- * target file
- * @return relative path of target file. Returns targetFile if there were
- * no commonalities between the base and the target
- *
- * @author Curt Arnold
- */
- public static String getRelativePath(String base, File targetFile) {
- try {
- //
- // remove trailing file separator
- //
- String canonicalBase = base;
- if (base.charAt(base.length() - 1) == File.separatorChar) {
- canonicalBase = base.substring(0, base.length() - 1);
- }
- //
- // get canonical name of target and remove trailing separator
- //
- String canonicalTarget;
- if (System.getProperty("os.name").equals("OS/400"))
- canonicalTarget = targetFile.getPath();
- else
- canonicalTarget = targetFile.getCanonicalPath();
- if (canonicalTarget.charAt(canonicalTarget.length() - 1) == File.separatorChar) {
- canonicalTarget = canonicalTarget.substring(0, canonicalTarget
- .length() - 1);
- }
- if (canonicalTarget.equals(canonicalBase)) {
- return ".";
- }
- //
- // see if the prefixes are the same
- //
- if (canonicalBase.substring(0, 2).equals("\\\\")) {
- //
- // UNC file name, if target file doesn't also start with same
- // server name, don't go there
- int endPrefix = canonicalBase.indexOf('\\', 2);
- String prefix1 = canonicalBase.substring(0, endPrefix);
- String prefix2 = canonicalTarget.substring(0, endPrefix);
- if (!prefix1.equals(prefix2)) {
- return canonicalTarget;
- }
- } else {
- if (canonicalBase.substring(1, 3).equals(":\\")) {
- int endPrefix = 2;
- String prefix1 = canonicalBase.substring(0, endPrefix);
- String prefix2 = canonicalTarget.substring(0, endPrefix);
- if (!prefix1.equals(prefix2)) {
- return canonicalTarget;
- }
- } else {
- if (canonicalBase.charAt(0) == '/') {
- if (canonicalTarget.charAt(0) != '/') {
- return canonicalTarget;
- }
- }
- }
- }
- char separator = File.separatorChar;
- int lastSeparator = -1;
- int minLength = canonicalBase.length();
- if (canonicalTarget.length() < minLength) {
- minLength = canonicalTarget.length();
- }
- int firstDifference = minLength + 1;
- //
- // walk to the shorter of the two paths
- // finding the last separator they have in common
- for (int i = 0; i < minLength; i++) {
- if (canonicalTarget.charAt(i) == canonicalBase.charAt(i)) {
- if (canonicalTarget.charAt(i) == separator) {
- lastSeparator = i;
- }
- } else {
- firstDifference = lastSeparator + 1;
- break;
- }
- }
- StringBuffer relativePath = new StringBuffer(50);
- //
- // walk from the first difference to the end of the base
- // adding "../" for each separator encountered
- //
- if (canonicalBase.length() > firstDifference) {
- relativePath.append("..");
- for (int i = firstDifference; i < canonicalBase.length(); i++) {
- if (canonicalBase.charAt(i) == separator) {
- relativePath.append(separator);
- relativePath.append("..");
- }
- }
- }
- if (canonicalTarget.length() > firstDifference) {
- //
- // append the rest of the target
- //
- //
- if (relativePath.length() > 0) {
- relativePath.append(separator);
- }
- relativePath.append(canonicalTarget.substring(firstDifference));
- }
- return relativePath.toString();
- } catch (IOException ex) {
- }
- return targetFile.toString();
- }
- public static boolean isActive(Project p, String ifCond, String unlessCond)
- throws BuildException {
- if (ifCond != null) {
- String ifValue = p.getProperty(ifCond);
- if (ifValue == null) {
- return false;
- } else {
- if (ifValue.equals("false") || ifValue.equals("no")) {
- throw new BuildException("if condition \"" + ifCond
- + "\" has suspicious value \"" + ifValue);
- }
- }
- }
- if (unlessCond != null) {
- String unlessValue = p.getProperty(unlessCond);
- if (unlessValue != null) {
- if (unlessValue.equals("false") || unlessValue.equals("no")) {
- throw new BuildException("unless condition \"" + unlessCond
- + "\" has suspicious value \"" + unlessValue);
- }
- return false;
- }
- }
- return true;
- }
- /**
- * Parse a string containing directories into an File[]
- *
- * @param path
- * path string, for example ".;c:\something\include"
- * @param delim
- * delimiter, typically ; or :
- */
- public static File[] parsePath(String path, String delim) {
- Vector libpaths = new Vector();
- int delimPos = 0;
- for (int startPos = 0; startPos < path.length(); startPos = delimPos
- + delim.length()) {
- delimPos = path.indexOf(delim, startPos);
- if (delimPos < 0) {
- delimPos = path.length();
- }
- //
- // don't add an entry for zero-length paths
- //
- if (delimPos > startPos) {
- String dirName = path.substring(startPos, delimPos);
- File dir = new File(dirName);
- if (dir.exists() && dir.isDirectory()) {
- libpaths.addElement(dir);
- }
- }
- }
- File[] paths = new File[libpaths.size()];
- libpaths.copyInto(paths);
- return paths;
- }
- /**
- * This method is exposed so test classes can overload and test the
- * arguments without actually spawning the compiler
- */
- public static int runCommand(CCTask task, File workingDir,
- String[] cmdline, boolean newEnvironment, Environment env)
- throws BuildException {
- try {
- task.log(Commandline.toString(cmdline), Project.MSG_VERBOSE);
- Execute exe = new Execute(new LogStreamHandler(task,
- Project.MSG_INFO, Project.MSG_ERR));
- if (System.getProperty("os.name").equals("OS/390"))
- exe.setVMLauncher(false);
- exe.setAntRun(task.getProject());
- exe.setCommandline(cmdline);
- exe.setWorkingDirectory(workingDir);
- if (env != null) {
- String[] environment = env.getVariables();
- if (environment != null) {
- for (int i = 0; i < environment.length; i++) {
- task.log("Setting environment variable: "
- + environment[i], Project.MSG_VERBOSE);
- }
- }
- exe.setEnvironment(environment);
- }
- exe.setNewenvironment(newEnvironment);
- return exe.execute();
- } catch (java.io.IOException exc) {
- throw new BuildException("Could not launch " + cmdline[0] + ": "
- + exc, task.getLocation());
- }
- }
- /**
- * Compares the contents of 2 arrays for equaliy.
- */
- public static boolean sameList(Object[] a, Object[] b) {
- if (a == null || b == null || a.length != b.length) {
- return false;
- }
- for (int i = 0; i < a.length; i++) {
- if (!a[i].equals(b[i])) {
- return false;
- }
- }
- return true;
- }
- /**
- * Compares the contents of an array and a Vector for equality.
- */
- public static boolean sameList(Vector v, Object[] a) {
- if (v == null || a == null || v.size() != a.length) {
- return false;
- }
- for (int i = 0; i < a.length; i++) {
- Object o = a[i];
- if (!o.equals(v.elementAt(i))) {
- return false;
- }
- }
- return true;
- }
- /**
- * Compares the contents of an array and a Vector for set equality. Assumes
- * input array and vector are sets (i.e. no duplicate entries)
- */
- public static boolean sameSet(Object[] a, Vector b) {
- if (a == null || b == null || a.length != b.size()) {
- return false;
- }
- if (a.length == 0) {
- return true;
- }
- // Convert the array into a set
- Hashtable t = new Hashtable();
- for (int i = 0; i < a.length; i++) {
- t.put(a[i], a[i]);
- }
- for (int i = 0; i < b.size(); i++) {
- Object o = b.elementAt(i);
- if (t.remove(o) == null) {
- return false;
- }
- }
- return (t.size() == 0);
- }
- /**
- * Converts a vector to a string array.
- */
- public static String[] toArray(Vector src) {
- String[] retval = new String[src.size()];
- src.copyInto(retval);
- return retval;
- }
- /**
- * Replaces any embedded quotes in the string so that the value can be
- * placed in an attribute in an XML file
- *
- * @param attrValue
- * value to be expressed
- * @return equivalent attribute literal
- *
- */
- public static String xmlAttribEncode(String attrValue) {
- int quotePos = attrValue.indexOf('\"');
- if (quotePos < 0) {
- return attrValue;
- }
- int startPos = 0;
- StringBuffer buf = new StringBuffer(attrValue.length() + 20);
- while (quotePos >= 0) {
- buf.append(attrValue.substring(startPos, quotePos));
- buf.append(""");
- startPos = quotePos + 1;
- quotePos = attrValue.indexOf('\"', startPos);
- }
- buf.append(attrValue.substring(startPos));
- return buf.toString();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java deleted file mode 100644 index 0a92a51512..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerDef.java +++ /dev/null @@ -1,556 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler;
-import net.sf.antcontrib.cpptasks.compiler.Compiler;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
-import net.sf.antcontrib.cpptasks.types.CompilerArgument;
-import net.sf.antcontrib.cpptasks.types.ConditionalPath;
-import net.sf.antcontrib.cpptasks.types.DefineSet;
-import net.sf.antcontrib.cpptasks.types.IncludePath;
-import net.sf.antcontrib.cpptasks.types.SystemIncludePath;
-import net.sf.antcontrib.cpptasks.types.UndefineArgument;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-import org.apache.tools.ant.*;
-/**
- * A compiler definition. compiler elements may be placed either as children of
- * a cc element or the project element. A compiler element with an id attribute
- * may be referenced from compiler elements with refid or extends attributes.
- *
- * @author Adam Murdoch
- */
-public final class CompilerDef extends ProcessorDef {
- /**
- * Enumerated attribute with the values "none", "severe", "default",
- * "production", "diagnostic", and "failtask".
- */
- public static class WarningLevel extends EnumeratedAttribute {
- public String[] getValues() {
- return new String[]{"none", "severe", "default", "production",
- "diagnostic", "aserror"};
- }
- }
- /** The source file sets. */
- private final Vector defineSets = new Vector();
- private Boolean exceptions;
- private Boolean rtti;
- private final Vector includePaths = new Vector();
- private Boolean multithreaded;
- private final Vector precompileDefs = new Vector();
- private final Vector sysIncludePaths = new Vector();
- private OptimizationEnum optimization;
- private int warnings = -1;
- private Boolean defaultflag = new Boolean(true);
- public CompilerDef() {
- }
- /**
- * Adds a compiler command-line arg.
- */
- public void addConfiguredCompilerArg(CompilerArgument arg) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- addConfiguredProcessorArg(arg);
- }
- /**
- * Adds a compiler command-line arg.
- */
- public void addConfiguredCompilerParam(CompilerParam param) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- addConfiguredProcessorParam(param);
- }
- /**
- * Adds a defineset.
- */
- public void addConfiguredDefineset(DefineSet defs) {
- if (defs == null) {
- throw new NullPointerException("defs");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- defineSets.addElement(defs);
- }
- /**
- * Creates an include path.
- */
- public IncludePath createIncludePath() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- IncludePath path = new IncludePath(p);
- includePaths.addElement(path);
- return path;
- }
- /**
- * Add a <includepath>or <sysincludepath> if specify the file
- * attribute
- *
- * @throws BuildException
- * if the specify file not exist
- */
- protected void loadFile(Vector activePath,File file) throws BuildException {
- FileReader fileReader;
- BufferedReader in;
- String str;
- if (! file.exists()){
- throw new BuildException("The file " + file + " is not existed");
- }
- try {
- fileReader = new FileReader(file);
- in = new BufferedReader(fileReader);
- while ( (str = in.readLine()) != null ){
- if(str.trim() == ""){
- continue ;
- }
- str = getProject().replaceProperties(str);
- activePath.addElement(str.trim());
- }
- }
- catch(Exception e){
- throw new BuildException(e.getMessage());
- }
- }
-
- /**
- * Specifies precompilation prototype file and exclusions.
- *
- */
- public PrecompileDef createPrecompile() throws BuildException {
- Project p = getProject();
- if (isReference()) {
- throw noChildrenAllowed();
- }
- PrecompileDef precomp = new PrecompileDef();
- precomp.setProject(p);
- precompileDefs.addElement(precomp);
- return precomp;
- }
- /**
- * Creates a system include path. Locations and timestamps of files located
- * using the system include paths are not used in dependency analysis.
- *
- *
- * Standard include locations should not be specified. The compiler
- * adapters should recognized the settings from the appropriate environment
- * variables or configuration files.
- */
- public SystemIncludePath createSysIncludePath() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- SystemIncludePath path = new SystemIncludePath(p);
- sysIncludePaths.addElement(path);
- return path;
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- public UndefineArgument[] getActiveDefines() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException(
- "project must be set before this call");
- }
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getActiveDefines();
- }
- Vector actives = new Vector();
- for (int i = 0; i < defineSets.size(); i++) {
- DefineSet currentSet = (DefineSet) defineSets.elementAt(i);
- UndefineArgument[] defines = currentSet.getDefines();
- for (int j = 0; j < defines.length; j++) {
- if (defines[j].isActive(p)) {
- actives.addElement(defines[j]);
- }
- }
- }
- UndefineArgument[] retval = new UndefineArgument[actives.size()];
- actives.copyInto(retval);
- return retval;
- }
- /**
- * Returns the compiler-specific include path.
- */
- public String[] getActiveIncludePaths() {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getActiveIncludePaths();
- }
- return getActivePaths(includePaths);
- }
- private String[] getActivePaths(Vector paths) {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project not set");
- }
- Vector activePaths = new Vector(paths.size());
- for (int i = 0; i < paths.size(); i++) {
- ConditionalPath path = (ConditionalPath) paths.elementAt(i);
- if (path.isActive(p)) {
- if (path.getFile() == null) {
- String[] pathEntries = path.list();
- for (int j = 0; j < pathEntries.length; j++) {
- activePaths.addElement(pathEntries[j]);
- }
- }
- else {
- loadFile(activePaths, path.getFile());
- }
- }
- }
- String[] pathNames = new String[activePaths.size()];
- activePaths.copyInto(pathNames);
- return pathNames;
- }
- public PrecompileDef getActivePrecompile(CompilerDef ccElement) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getActivePrecompile(ccElement);
- }
- PrecompileDef current = null;
- Enumeration enumPrecompilerDef = precompileDefs.elements();
- while (enumPrecompilerDef.hasMoreElements()) {
- current = (PrecompileDef) enumPrecompilerDef.nextElement();
- if (current.isActive()) {
- return current;
- }
- }
- CompilerDef extendedDef = (CompilerDef) getExtends();
- if (extendedDef != null) {
- current = extendedDef.getActivePrecompile(null);
- if (current != null) {
- return current;
- }
- }
- if (ccElement != null && getInherit()) {
- return ccElement.getActivePrecompile(null);
- }
- return null;
- }
- public String[] getActiveSysIncludePaths() {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getActiveSysIncludePaths();
- }
- return getActivePaths(sysIncludePaths);
- }
- public final boolean getExceptions(CompilerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getExceptions(defaultProviders, index);
- }
- if (exceptions != null) {
- return exceptions.booleanValue();
- } else {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getExceptions(defaultProviders,
- index + 1);
- }
- }
- return false;
- }
- public final Boolean getRtti(CompilerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getRtti(defaultProviders, index);
- }
- if (rtti != null) {
- return rtti;
- } else {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getRtti(defaultProviders,
- index + 1);
- }
- }
- return null;
- }
- public final Boolean getDefaultflag(CompilerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getDefaultflag(defaultProviders, index);
- }
- return defaultflag;
- }
- public final OptimizationEnum getOptimization(CompilerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getOptimization(defaultProviders, index);
- }
- if (optimization != null) {
- return optimization;
- } else {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getOptimization(defaultProviders,
- index + 1);
- }
- }
- return null;
- }
-
- public boolean getMultithreaded(CompilerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getMultithreaded(defaultProviders, index);
- }
- if (multithreaded != null) {
- return multithreaded.booleanValue();
- } else {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getMultithreaded(
- defaultProviders, index + 1);
- }
- }
- return true;
- }
- public Processor getProcessor() {
- Processor processor = super.getProcessor();
- if (processor == null) {
- processor = GccCCompiler.getInstance();
- }
- if (getLibtool() && processor instanceof CommandLineCompiler) {
- CommandLineCompiler compiler = (CommandLineCompiler) processor;
- processor = compiler.getLibtoolCompiler();
- }
- return processor;
- }
- public int getWarnings(CompilerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((CompilerDef) getCheckedRef(CompilerDef.class,
- "CompilerDef")).getWarnings(defaultProviders, index);
- }
- if (warnings == -1) {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getWarnings(defaultProviders,
- index + 1);
- }
- }
- return warnings;
- }
- /**
- * Sets the default compiler adapter. Use the "name" attribute when the
- * compiler is a supported compiler.
- *
- * @param classname
- * fully qualified classname which implements CompilerAdapter
- */
- public void setClassname(String classname) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- super.setClassname(classname);
- Processor proc = getProcessor();
- if (!(proc instanceof Compiler)) {
- throw new BuildException(classname + " does not implement Compiler");
- }
- }
- /**
- * Enables or disables exception support.
- *
- * @param exceptions
- * if true, exceptions are supported.
- *
- */
- public void setExceptions(boolean exceptions) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.exceptions = booleanValueOf(exceptions);
- }
-
- /**
- * Enables or disables run-time type information.
- *
- * @param rtti
- * if true, run-time type information is supported.
- *
- */
- public void setRtti(boolean rtti) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.rtti = booleanValueOf(rtti);
- }
-
- /**
- * Enables or disables generation of multithreaded code. Unless specified,
- * multithreaded code generation is enabled.
- *
- * @param multi
- * If true, generated code may be multithreaded.
- */
- public void setMultithreaded(boolean multithreaded) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.multithreaded = booleanValueOf(multithreaded);
- }
- /**
- * Sets compiler type.
- *
- *
- * <table width="100%" border="1"> <thead>Supported compilers </thead>
- * <tr>
- * <td>gcc (default)</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>c++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g77</td>
- * <td>GNU Fortran compiler</td>
- * </tr>
- * <tr>
- * <td>msvc</td>
- * <td>Microsoft Visual C++</td>
- * </tr>
- * <tr>
- * <td>bcc</td>
- * <td>Borland C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>msrc</td>
- * <td>Microsoft Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>brc</td>
- * <td>Borland Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>df</td>
- * <td>Compaq Visual Fortran Compiler</td>
- * </tr>
- * <tr>
- * <td>midl</td>
- * <td>Microsoft MIDL Compiler</td>
- * </tr>
- * <tr>
- * <td>icl</td>
- * <td>Intel C++ compiler for Windows (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecl</td>
- * <td>Intel C++ compiler for Windows (IA-64)</td>
- * </tr>
- * <tr>
- * <td>icc</td>
- * <td>Intel C++ compiler for Linux (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecc</td>
- * <td>Intel C++ compiler for Linux (IA-64)</td>
- * </tr>
- * <tr>
- * <td>CC</td>
- * <td>Sun ONE C++ compiler</td>
- * </tr>
- * <tr>
- * <td>aCC</td>
- * <td>HP aC++ C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>os390</td>
- * <td>OS390 C Compiler</td>
- * </tr>
- * <tr>
- * <td>os400</td>
- * <td>Icc Compiler</td>
- * </tr>
- * <tr>
- * <td>sunc89</td>
- * <td>Sun C89 C Compiler</td>
- * </tr>
- * <tr>
- * <td>xlC</td>
- * <td>VisualAge C Compiler</td>
- * </tr>
- * </table>
- *
- */
- public void setName(CompilerEnum name) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- Compiler compiler = name.getCompiler();
- setProcessor(compiler);
- }
- protected void setProcessor(Processor proc) throws BuildException {
- try {
- super.setProcessor((Compiler) proc);
- } catch (ClassCastException ex) {
- throw new BuildException(ex);
- }
- }
- /**
- * Enumerated attribute with the values "none", "severe", "default",
- * "production", "diagnostic", and "failtask".
- */
- public void setWarnings(CompilerDef.WarningLevel level) {
- warnings = level.getIndex();
- }
- /**
- * Sets optimization level.
- *
- * @param value optimization level
- */
- public void setOptimize(OptimizationEnum value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.optimization = value;
- }
- /**
- * Enables or disables default flags.
- *
- * @param defaultflag
- * if true, default flags will add to command line.
- *
- */
- public void setDefaultflag(boolean defaultflag) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.defaultflag = booleanValueOf(defaultflag);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java deleted file mode 100644 index a017243522..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerEnum.java +++ /dev/null @@ -1,221 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import net.sf.antcontrib.cpptasks.arm.ADSCCompiler;
-import net.sf.antcontrib.cpptasks.borland.BorlandCCompiler;
-import net.sf.antcontrib.cpptasks.borland.BorlandResourceCompiler;
-import net.sf.antcontrib.cpptasks.compaq.CompaqVisualFortranCompiler;
-import net.sf.antcontrib.cpptasks.compiler.Compiler;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioMIDLCompiler;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioResourceCompiler;
-import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
-import net.sf.antcontrib.cpptasks.hp.aCCCompiler;
-import net.sf.antcontrib.cpptasks.ibm.VisualAgeCCompiler;
-import net.sf.antcontrib.cpptasks.intel.IntelLinux32CCompiler;
-import net.sf.antcontrib.cpptasks.intel.IntelLinux64CCompiler;
-import net.sf.antcontrib.cpptasks.intel.IntelWin32CCompiler;
-import net.sf.antcontrib.cpptasks.intel.IntelWin64CCompiler;
-import net.sf.antcontrib.cpptasks.os390.OS390CCompiler;
-import net.sf.antcontrib.cpptasks.os400.IccCompiler;
-import net.sf.antcontrib.cpptasks.sun.C89CCompiler;
-import net.sf.antcontrib.cpptasks.sun.ForteCCCompiler;
-import net.sf.antcontrib.cpptasks.ti.ClxxCCompiler;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-/**
- * Enumeration of supported compilers
- *
- * <table width="100%" border="1"> <thead>Supported compilers </thead>
- * <tr>
- * <td>gcc (default)</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>c++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g77</td>
- * <td>GNU FORTRAN compiler</td>
- * </tr>
- * <tr>
- * <td>msvc</td>
- * <td>Microsoft Visual C++</td>
- * </tr>
- * <tr>
- * <td>bcc</td>
- * <td>Borland C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>msrc</td>
- * <td>Microsoft Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>brc</td>
- * <td>Borland Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>df</td>
- * <td>Compaq Visual Fortran Compiler</td>
- * </tr>
- * <tr>
- * <td>midl</td>
- * <td>Microsoft MIDL Compiler</td>
- * </tr>
- * <tr>
- * <td>icl</td>
- * <td>Intel C++ compiler for Windows (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecl</td>
- * <td>Intel C++ compiler for Windows (IA-64)</td>
- * </tr>
- * <tr>
- * <td>icc</td>
- * <td>Intel C++ compiler for Linux (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecc</td>
- * <td>Intel C++ compiler for Linux (IA-64)</td>
- * </tr>
- * <tr>
- * <td>CC</td>
- * <td>Sun ONE C++ compiler</td>
- * </tr>
- * <tr>
- * <td>aCC</td>
- * <td>HP aC++ C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>os390</td>
- * <td>OS390 C Compiler</td>
- * </tr>
- * <tr>
- * <td>os400</td>
- * <td>Icc Compiler</td>
- * </tr>
- * <tr>
- * <td>sunc89</td>
- * <td>Sun C89 C Compiler</td>
- * </tr>
- * <tr>
- * <td>xlC</td>
- * <td>VisualAge C Compiler</td>
- * </tr>
- * <tr>
- * <td>cl6x</td>
- * <td>TI TMS320C6000 Optimizing Compiler</td>
- * </tr>
- * <tr>
- * <td>cl55</td>
- * <td>TI TMS320C55x Optimizing C/C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>armcpp</td>
- * <td>ARM 32-bit C++ compiler</td>
- * </tr>
- * <tr>
- * <td>armcc</td>
- * <td>ARM 32-bit C compiler</td>
- * </tr>
- * <tr>
- * <td>tcpp</td>
- * <td>ARM 16-bit C++ compiler</td>
- * </tr>
- * <tr>
- * <td>tcc</td>
- * <td>ARM 16-bit C compiler</td>
- * </tr>
- * </table>
- *
- * @author Curt Arnold
- *
- */
-public class CompilerEnum extends EnumeratedAttribute {
- private final static ProcessorEnumValue[] compilers = new ProcessorEnumValue[]{
- new ProcessorEnumValue("gcc", GccCCompiler.getInstance()),
- new ProcessorEnumValue("g++", GccCCompiler.getGppInstance()),
- new ProcessorEnumValue("c++", GccCCompiler.getCppInstance()),
- new ProcessorEnumValue("g77", GccCCompiler.getG77Instance()),
- new ProcessorEnumValue("msvc", DevStudioCCompiler.getInstance()),
- new ProcessorEnumValue("bcc", BorlandCCompiler.getInstance()),
- new ProcessorEnumValue("msrc", DevStudioResourceCompiler
- .getInstance()),
- new ProcessorEnumValue("brc", BorlandResourceCompiler.getInstance()),
- new ProcessorEnumValue("df", CompaqVisualFortranCompiler
- .getInstance()),
- new ProcessorEnumValue("midl", DevStudioMIDLCompiler.getInstance()),
- new ProcessorEnumValue("icl", IntelWin32CCompiler.getInstance()),
- new ProcessorEnumValue("ecl", IntelWin64CCompiler.getInstance()),
- new ProcessorEnumValue("icc", IntelLinux32CCompiler.getInstance()),
- new ProcessorEnumValue("ecc", IntelLinux64CCompiler.getInstance()),
- new ProcessorEnumValue("CC", ForteCCCompiler.getInstance()),
- new ProcessorEnumValue("aCC", aCCCompiler.getInstance()),
- new ProcessorEnumValue("os390", OS390CCompiler.getInstance()),
- new ProcessorEnumValue("os400", IccCompiler.getInstance()),
- new ProcessorEnumValue("sunc89", C89CCompiler.getInstance()),
- new ProcessorEnumValue("xlC", VisualAgeCCompiler.getInstance()),
- new ProcessorEnumValue("cl6x", ClxxCCompiler.getCl6xInstance()),
- new ProcessorEnumValue("cl55", ClxxCCompiler.getCl55Instance()),
- new ProcessorEnumValue("armcc", ADSCCompiler.getArmCC()),
- new ProcessorEnumValue("armcpp", ADSCCompiler.getArmCpp()),
- new ProcessorEnumValue("tcc", ADSCCompiler.getThumbCC()),
- new ProcessorEnumValue("tcpp", ADSCCompiler.getThumbCpp()),
- // userdefined
- //new ProcessorEnumValue("userdefine", UserdefineCompiler.getInstance()),
- // GCC Cross Compilers
- new ProcessorEnumValue(
- "sparc-sun-solaris2-gcc",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler
- .getInstance()),
- new ProcessorEnumValue(
- "sparc-sun-solaris2-g++",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler
- .getGppInstance()),
- new ProcessorEnumValue(
- "sparc-sun-solaris2-c++",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler
- .getCppInstance()),
- new ProcessorEnumValue(
- "sparc-sun-solaris2-g77",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccCCompiler
- .getG77Instance()),
- // GCC Cross Compilers
- new ProcessorEnumValue("gcc-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler
- .getInstance()),
- new ProcessorEnumValue("g++-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler
- .getGppInstance()),
- new ProcessorEnumValue("c++-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler
- .getCppInstance()),
- new ProcessorEnumValue("g77-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GccCCompiler
- .getG77Instance()),};
- public Compiler getCompiler() {
- return (Compiler) compilers[getIndex()].getProcessor();
- }
- public String[] getValues() {
- return ProcessorEnumValue.getValues(compilers);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java deleted file mode 100644 index 82eb6ee425..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/CompilerParam.java +++ /dev/null @@ -1,33 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-/*******************************************************************************
- * Place class description here.
- *
- * @author inger
- * @author <additional author>
- *
- * @since
- ******************************************************************************/
-public class CompilerParam extends ProcessorParam {
- public CompilerParam() {
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java deleted file mode 100644 index 429d2b0107..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyInfo.java +++ /dev/null @@ -1,86 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.util.Vector;
-/**
- * @author Curt Arnold
- */
-public final class DependencyInfo {
- /**
- * Last modified time of this file or anything that it depends on.
- *
- * Not persisted since almost any change could invalidate it. Initialized
- * to long.MIN_VALUE on construction.
- */
- private long compositeLastModified;
- private/* final */String includePathIdentifier;
- private/* final */String[] includes;
- private/* final */String source;
- private/* final */long sourceLastModified;
- private/* final */String[] sysIncludes;
- public DependencyInfo(String includePathIdentifier, String source,
- long sourceLastModified, Vector includes, Vector sysIncludes) {
- if (source == null) {
- throw new NullPointerException("source");
- }
- if (includePathIdentifier == null) {
- throw new NullPointerException("includePathIdentifier");
- }
- this.source = source;
- this.sourceLastModified = sourceLastModified;
- this.includePathIdentifier = includePathIdentifier;
- this.includes = new String[includes.size()];
- if (includes.size() == 0) {
- compositeLastModified = sourceLastModified;
- } else {
- includes.copyInto(this.includes);
- compositeLastModified = Long.MIN_VALUE;
- }
- this.sysIncludes = new String[sysIncludes.size()];
- sysIncludes.copyInto(this.sysIncludes);
- }
- /**
- * Returns the latest modification date of the source or anything that it
- * depends on.
- *
- * @returns the composite lastModified time, returns Long.MIN_VALUE if not
- * set
- */
- public long getCompositeLastModified() {
- return compositeLastModified;
- }
- public String getIncludePathIdentifier() {
- return includePathIdentifier;
- }
- public String[] getIncludes() {
- String[] includesClone = (String[]) includes.clone();
- return includesClone;
- }
- public String getSource() {
- return source;
- }
- public long getSourceLastModified() {
- return sourceLastModified;
- }
- public String[] getSysIncludes() {
- String[] sysIncludesClone = (String[]) sysIncludes.clone();
- return sysIncludesClone;
- }
- public void setCompositeLastModified(long lastMod) {
- compositeLastModified = lastMod;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java deleted file mode 100644 index 3cbee7a625..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DependencyTable.java +++ /dev/null @@ -1,609 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-/**
- * @author Curt Arnold
- */
-public final class DependencyTable {
- /**
- * This class handles populates the TargetHistory hashtable in response to
- * SAX parse events
- */
- private class DependencyTableHandler extends DefaultHandler {
- private File baseDir;
- private final DependencyTable dependencyTable;
- private String includePath;
- private Vector includes;
- private String source;
- private long sourceLastModified;
- private Vector sysIncludes;
- /**
- * Constructor
- *
- * @param history
- * hashtable of TargetHistory keyed by output name
- * @param outputFiles
- * existing files in output directory
- */
- private DependencyTableHandler(DependencyTable dependencyTable,
- File baseDir) {
- this.dependencyTable = dependencyTable;
- this.baseDir = baseDir;
- includes = new Vector();
- sysIncludes = new Vector();
- source = null;
- }
- public void endElement(String namespaceURI, String localName,
- String qName) throws SAXException {
- //
- // if </source> then
- // create Dependency object and add to hashtable
- // if corresponding source file exists and
- // has the same timestamp
- //
- if (qName.equals("source")) {
- if (source != null && includePath != null) {
- File existingFile = new File(baseDir, source);
- //
- // if the file exists and the time stamp is right
- // preserve the dependency info
- if (existingFile.exists()) {
- //
- // would have expected exact matches
- // but was seeing some unexpected difference by
- // a few tens of milliseconds, as long
- // as the times are within a second
- long existingLastModified = existingFile.lastModified();
- long diff = existingLastModified - sourceLastModified;
- if (diff >= -500 && diff <= 500) {
- DependencyInfo dependInfo = new DependencyInfo(
- includePath, source, sourceLastModified,
- includes, sysIncludes);
- dependencyTable.putDependencyInfo(source,
- dependInfo);
- }
- }
- source = null;
- includes.setSize(0);
- }
- } else {
- //
- // this causes any <source> elements outside the
- // scope of an <includePath> to be discarded
- //
- if (qName.equals("includePath")) {
- includePath = null;
- }
- }
- }
- /**
- * startElement handler
- */
- public void startElement(String namespaceURI, String localName,
- String qName, Attributes atts) throws SAXException {
- //
- // if includes, then add relative file name to vector
- //
- if (qName.equals("include")) {
- includes.addElement(atts.getValue("file"));
- } else {
- if (qName.equals("sysinclude")) {
- sysIncludes.addElement(atts.getValue("file"));
- } else {
- //
- // if source then
- // capture source file name,
- // modification time and reset includes vector
- //
- if (qName.equals("source")) {
- source = atts.getValue("file");
- sourceLastModified = Long.parseLong(atts
- .getValue("lastModified"), 16);
- includes.setSize(0);
- sysIncludes.setSize(0);
- } else {
- if (qName.equals("includePath")) {
- includePath = atts.getValue("signature");
- }
- }
- }
- }
- }
- }
- public abstract class DependencyVisitor {
- /**
- * Previews all the children of this source file.
- *
- * May be called multiple times as DependencyInfo's for children are
- * filled in.
- *
- * @return true to continue towards recursion into included files
- */
- public abstract boolean preview(DependencyInfo parent,
- DependencyInfo[] children);
- /**
- * Called if the dependency depth exhausted the stack.
- */
- public abstract void stackExhausted();
- /**
- * Visits the dependency info.
- *
- * @returns true to continue towards recursion into included files
- */
- public abstract boolean visit(DependencyInfo dependInfo);
- }
- public class TimestampChecker extends DependencyVisitor {
- private boolean noNeedToRebuild;
- private long outputLastModified;
- private boolean rebuildOnStackExhaustion;
- public TimestampChecker(final long outputLastModified,
- boolean rebuildOnStackExhaustion) {
- this.outputLastModified = outputLastModified;
- noNeedToRebuild = true;
- this.rebuildOnStackExhaustion = rebuildOnStackExhaustion;
- }
- public boolean getMustRebuild() {
- return !noNeedToRebuild;
- }
- public boolean preview(DependencyInfo parent, DependencyInfo[] children) {
- int withCompositeTimes = 0;
- long parentCompositeLastModified = parent.getSourceLastModified();
- for (int i = 0; i < children.length; i++) {
- if (children[i] != null) {
- //
- // expedient way to determine if a child forces us to
- // rebuild
- //
- visit(children[i]);
- long childCompositeLastModified = children[i]
- .getCompositeLastModified();
- if (childCompositeLastModified != Long.MIN_VALUE) {
- withCompositeTimes++;
- if (childCompositeLastModified > parentCompositeLastModified) {
- parentCompositeLastModified = childCompositeLastModified;
- }
- }
- }
- }
- if (withCompositeTimes == children.length) {
- parent.setCompositeLastModified(parentCompositeLastModified);
- }
- //
- // may have been changed by an earlier call to visit()
- //
- return noNeedToRebuild;
- }
- public void stackExhausted() {
- if (rebuildOnStackExhaustion) {
- noNeedToRebuild = false;
- }
- }
- public boolean visit(DependencyInfo dependInfo) {
- if (noNeedToRebuild) {
- if (dependInfo.getSourceLastModified() > outputLastModified
- || dependInfo.getCompositeLastModified() > outputLastModified) {
- noNeedToRebuild = false;
- }
- }
- //
- // only need to process the children if
- // it has not yet been determined whether
- // we need to rebuild and the composite modified time
- // has not been determined for this file
- return noNeedToRebuild
- && dependInfo.getCompositeLastModified() == Long.MIN_VALUE;
- }
- }
- private/* final */File baseDir;
- private String baseDirPath;
- /**
- * a hashtable of DependencyInfo[] keyed by output file name
- */
- private final Hashtable dependencies = new Hashtable();
- /** The file the cache was loaded from. */
- private/* final */File dependenciesFile;
- /** Flag indicating whether the cache should be written back to file. */
- private boolean dirty;
- /**
- * Creates a target history table from dependencies.xml in the prject
- * directory, if it exists. Otherwise, initializes the dependencies empty.
- *
- * @param task
- * task used for logging history load errors
- * @param baseDir
- * output directory for task
- */
- public DependencyTable(File baseDir) {
- if (baseDir == null) {
- throw new NullPointerException("baseDir");
- }
- this.baseDir = baseDir;
- try {
- baseDirPath = baseDir.getCanonicalPath();
- } catch (IOException ex) {
- baseDirPath = baseDir.toString();
- }
- dirty = false;
- //
- // load any existing dependencies from file
- dependenciesFile = new File(baseDir, "dependencies.xml");
- }
- public void commit(CCTask task) {
- //
- // if not dirty, no need to update file
- //
- if (dirty) {
- //
- // walk through dependencies to get vector of include paths
- // identifiers
- //
- Vector includePaths = getIncludePaths();
- //
- //
- // write dependency file
- //
- try {
- FileOutputStream outStream = new FileOutputStream(
- dependenciesFile);
- OutputStreamWriter streamWriter;
- //
- // Early VM's may not have UTF-8 support
- // fallback to default code page which
- // "should" be okay unless there are
- // non ASCII file names
- String encodingName = "UTF-8";
- try {
- streamWriter = new OutputStreamWriter(outStream, "UTF-8");
- } catch (UnsupportedEncodingException ex) {
- streamWriter = new OutputStreamWriter(outStream);
- encodingName = streamWriter.getEncoding();
- }
- BufferedWriter writer = new BufferedWriter(streamWriter);
- writer.write("<?xml version='1.0' encoding='");
- writer.write(encodingName);
- writer.write("'?>\n");
- writer.write("<dependencies>\n");
- StringBuffer buf = new StringBuffer();
- Enumeration includePathEnum = includePaths.elements();
- while (includePathEnum.hasMoreElements()) {
- writeIncludePathDependencies((String) includePathEnum
- .nextElement(), writer, buf);
- }
- writer.write("</dependencies>\n");
- writer.close();
- dirty = false;
- } catch (IOException ex) {
- task.log("Error writing " + dependenciesFile.toString() + ":"
- + ex.toString());
- }
- }
- }
- /**
- * Returns an enumerator of DependencyInfo's
- */
- public Enumeration elements() {
- return dependencies.elements();
- }
- /**
- * This method returns a DependencyInfo for the specific source file and
- * include path identifier
- *
- */
- public DependencyInfo getDependencyInfo(String sourceRelativeName,
- String includePathIdentifier) {
- DependencyInfo dependInfo = null;
- DependencyInfo[] dependInfos = (DependencyInfo[]) dependencies
- .get(sourceRelativeName);
- if (dependInfos != null) {
- for (int i = 0; i < dependInfos.length; i++) {
- dependInfo = dependInfos[i];
- if (dependInfo.getIncludePathIdentifier().equals(
- includePathIdentifier)) {
- return dependInfo;
- }
- }
- }
- return null;
- }
- private Vector getIncludePaths() {
- Vector includePaths = new Vector();
- DependencyInfo[] dependInfos;
- Enumeration dependenciesEnum = dependencies.elements();
- while (dependenciesEnum.hasMoreElements()) {
- dependInfos = (DependencyInfo[]) dependenciesEnum.nextElement();
- for (int i = 0; i < dependInfos.length; i++) {
- DependencyInfo dependInfo = dependInfos[i];
- boolean matchesExisting = false;
- final String dependIncludePath = dependInfo
- .getIncludePathIdentifier();
- Enumeration includePathEnum = includePaths.elements();
- while (includePathEnum.hasMoreElements()) {
- if (dependIncludePath.equals(includePathEnum.nextElement())) {
- matchesExisting = true;
- break;
- }
- }
- if (!matchesExisting) {
- includePaths.addElement(dependIncludePath);
- }
- }
- }
- return includePaths;
- }
- public void load() throws IOException, ParserConfigurationException,
- SAXException {
- dependencies.clear();
- if (dependenciesFile.exists()) {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setValidating(false);
- SAXParser parser = factory.newSAXParser();
- parser.parse(dependenciesFile, new DependencyTableHandler(this,
- baseDir));
- dirty = false;
- }
- }
- /**
- * Determines if the specified target needs to be rebuilt.
- *
- * This task may result in substantial IO as files are parsed to determine
- * their dependencies
- */
- public boolean needsRebuild(CCTask task, TargetInfo target,
- int dependencyDepth) {
- // look at any files where the compositeLastModified
- // is not known, but the includes are known
- //
- boolean mustRebuild = false;
- CompilerConfiguration compiler = (CompilerConfiguration) target
- .getConfiguration();
- String includePathIdentifier = compiler.getIncludePathIdentifier();
- File[] sources = target.getSources();
- DependencyInfo[] dependInfos = new DependencyInfo[sources.length];
- long outputLastModified = target.getOutput().lastModified();
- //
- // try to solve problem using existing dependency info
- // (not parsing any new files)
- //
- DependencyInfo[] stack = new DependencyInfo[50];
- boolean rebuildOnStackExhaustion = true;
- if (dependencyDepth >= 0) {
- if (dependencyDepth < 50) {
- stack = new DependencyInfo[dependencyDepth];
- }
- rebuildOnStackExhaustion = false;
- }
- TimestampChecker checker = new TimestampChecker(outputLastModified,
- rebuildOnStackExhaustion);
- for (int i = 0; i < sources.length && !mustRebuild; i++) {
- File source = sources[i];
- String relative = CUtil.getRelativePath(baseDirPath, source);
- DependencyInfo dependInfo = getDependencyInfo(relative,
- includePathIdentifier);
- if (dependInfo == null) {
- task.log("Parsing " + relative, Project.MSG_VERBOSE);
- dependInfo = parseIncludes(task, compiler, source);
- }
- walkDependencies(task, dependInfo, compiler, stack, checker);
- mustRebuild = checker.getMustRebuild();
- }
- return mustRebuild;
- }
- public DependencyInfo parseIncludes(CCTask task,
- CompilerConfiguration compiler, File source) {
- DependencyInfo dependInfo = compiler.parseIncludes(task, baseDir,
- source);
- String relativeSource = CUtil.getRelativePath(baseDirPath, source);
- putDependencyInfo(relativeSource, dependInfo);
- return dependInfo;
- }
- private void putDependencyInfo(String key, DependencyInfo dependInfo) {
- //
- // optimistic, add new value
- //
- DependencyInfo[] old = (DependencyInfo[]) dependencies.put(key,
- new DependencyInfo[]{dependInfo});
- dirty = true;
- //
- // something was already there
- //
- if (old != null) {
- //
- // see if the include path matches a previous entry
- // if so replace it
- String includePathIdentifier = dependInfo
- .getIncludePathIdentifier();
- for (int i = 0; i < old.length; i++) {
- DependencyInfo oldDepend = old[i];
- if (oldDepend.getIncludePathIdentifier().equals(
- includePathIdentifier)) {
- old[i] = dependInfo;
- dependencies.put(key, old);
- return;
- }
- }
- //
- // no match prepend the new entry to the array
- // of dependencies for the file
- DependencyInfo[] combined = new DependencyInfo[old.length + 1];
- combined[0] = dependInfo;
- for (int i = 0; i < old.length; i++) {
- combined[i + 1] = old[i];
- }
- dependencies.put(key, combined);
- }
- return;
- }
- public void walkDependencies(CCTask task, DependencyInfo dependInfo,
- CompilerConfiguration compiler, DependencyInfo[] stack,
- DependencyVisitor visitor) throws BuildException {
- //
- // visit this node
- // if visit returns true then
- // visit the referenced include and sysInclude dependencies
- //
- if (visitor.visit(dependInfo)) {
- //
- // find first null entry on stack
- //
- int stackPosition = -1;
- for (int i = 0; i < stack.length; i++) {
- if (stack[i] == null) {
- stackPosition = i;
- stack[i] = dependInfo;
- break;
- } else {
- //
- // if we have appeared early in the calling history
- // then we didn't exceed the criteria
- if (stack[i] == dependInfo) {
- return;
- }
- }
- }
- if (stackPosition == -1) {
- visitor.stackExhausted();
- return;
- }
- //
- // locate dependency infos
- //
- String[] includes = dependInfo.getIncludes();
- String includePathIdentifier = compiler.getIncludePathIdentifier();
- DependencyInfo[] includeInfos = new DependencyInfo[includes.length];
- for (int i = 0; i < includes.length; i++) {
- DependencyInfo includeInfo = getDependencyInfo(includes[i],
- includePathIdentifier);
- includeInfos[i] = includeInfo;
- }
- //
- // preview with only the already available dependency infos
- //
- if (visitor.preview(dependInfo, includeInfos)) {
- //
- // now need to fill in the missing DependencyInfos
- //
- int missingCount = 0;
- for (int i = 0; i < includes.length; i++) {
- if (includeInfos[i] == null) {
- missingCount++;
- task.log("Parsing " + includes[i], Project.MSG_VERBOSE);
- // If the include is part of a UNC don't go building a
- // relative file name.
- File src = includes[i].startsWith("\\\\") ? new File(
- includes[i]) : new File(baseDir, includes[i]);
- DependencyInfo includeInfo = parseIncludes(task,
- compiler, src);
- includeInfos[i] = includeInfo;
- }
- }
- //
- // if it passes a review the second time
- // then recurse into all the children
- if (missingCount == 0
- || visitor.preview(dependInfo, includeInfos)) {
- //
- // recurse into
- //
- for (int i = 0; i < includeInfos.length; i++) {
- DependencyInfo includeInfo = includeInfos[i];
- walkDependencies(task, includeInfo, compiler, stack,
- visitor);
- }
- }
- }
- stack[stackPosition] = null;
- }
- }
- private void writeDependencyInfo(BufferedWriter writer, StringBuffer buf,
- DependencyInfo dependInfo) throws IOException {
- String[] includes = dependInfo.getIncludes();
- String[] sysIncludes = dependInfo.getSysIncludes();
- //
- // if the includes have not been evaluted then
- // it is not worth our time saving it
- // and trying to distiguish between files with
- // no dependencies and those with undetermined dependencies
- buf.setLength(0);
- buf.append(" <source file=\"");
- buf.append(CUtil.xmlAttribEncode(dependInfo.getSource()));
- buf.append("\" lastModified=\"");
- buf.append(Long.toHexString(dependInfo.getSourceLastModified()));
- buf.append("\">\n");
- writer.write(buf.toString());
- for (int i = 0; i < includes.length; i++) {
- buf.setLength(0);
- buf.append(" <include file=\"");
- buf.append(CUtil.xmlAttribEncode(includes[i]));
- buf.append("\"/>\n");
- writer.write(buf.toString());
- }
- for (int i = 0; i < sysIncludes.length; i++) {
- buf.setLength(0);
- buf.append(" <sysinclude file=\"");
- buf.append(CUtil.xmlAttribEncode(sysIncludes[i]));
- buf.append("\"/>\n");
- writer.write(buf.toString());
- }
- writer.write(" </source>\n");
- return;
- }
- private void writeIncludePathDependencies(String includePathIdentifier,
- BufferedWriter writer, StringBuffer buf) throws IOException {
- //
- // include path element
- //
- buf.setLength(0);
- buf.append(" <includePath signature=\"");
- buf.append(CUtil.xmlAttribEncode(includePathIdentifier));
- buf.append("\">\n");
- writer.write(buf.toString());
- Enumeration dependenciesEnum = dependencies.elements();
- while (dependenciesEnum.hasMoreElements()) {
- DependencyInfo[] dependInfos = (DependencyInfo[]) dependenciesEnum
- .nextElement();
- for (int i = 0; i < dependInfos.length; i++) {
- DependencyInfo dependInfo = dependInfos[i];
- //
- // if this is for the same include path
- // then output the info
- if (dependInfo.getIncludePathIdentifier().equals(
- includePathIdentifier)) {
- writeDependencyInfo(writer, buf, dependInfo);
- }
- }
- }
- writer.write(" </includePath>\n");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java deleted file mode 100644 index ee4f656ccc..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerDef.java +++ /dev/null @@ -1,243 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-
-import org.apache.tools.ant.types.DataType;
-import org.apache.tools.ant.types.Reference;
-import java.util.Vector;
-
-/**
- * Distributed build information (Non-functional prototype).
- *
- */
-public final class DistributerDef
- extends DataType {
- /**
- * if property.
- */
- private String ifCond;
-
- /**
- * unless property.
- */
- private String unlessCond;
-
- /**
- * hosts.
- *
- */
- private String hosts;
-
- /**
- * Protocol.
- *
- */
- private DistributerProtocolEnum protocol;
-
- /**
- * Not sure what this is.
- */
- private int tcpCork;
-
- /**
- * user name.
- */
- private String user;
-
- /**
- * local to remote file name maps.
- */
- private final Vector maps = new Vector();
-
- /**
- * Constructor.
- *
- */
- public DistributerDef() {
- }
-
- /**
- * Required by documentation generator.
- */
- public void execute() {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-
- /**
- * Returns true if the if and unless conditions (if any) are
- * satisfied.
- * @return true if definition is active.
- */
- public boolean isActive() {
- return CUtil.isActive(getProject(), ifCond, unlessCond);
- }
-
- /**
- * Sets an id that can be used to reference this element.
- *
- * @param id
- * id
- */
- public void setId(final String id) {
- //
- // this is actually accomplished by a different
- // mechanism, but we can document it
- //
- }
-
- /**
- * Sets the property name for the 'if' condition.
- *
- * The define will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public void setIf(final String propName) {
- ifCond = propName;
- }
-
- /**
- * Specifies that this element should behave as if the content of the
- * element with the matching id attribute was inserted at this location. If
- * specified, no other attributes should be specified.
- * @param r reference name
- */
- public void setRefid(final Reference r) {
- super.setRefid(r);
- }
-
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the define will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(final String propName) {
- unlessCond = propName;
- }
-
- /**
- * Gets hosts.
- * @return hosts, may be null.
- *
- */
- public String getHosts() {
- if (isReference()) {
- DistributerDef refDistributer = (DistributerDef)
- getCheckedRef(DistributerDef.class,
- "DistributerDef");
- return refDistributer.getHosts();
- }
- return hosts;
- }
-
- /**
- * Gets tcp cork.
- * @return TCP_CORK value.
- *
- */
- public int getTcpcork() {
- if (isReference()) {
- DistributerDef refDistributer = (DistributerDef)
- getCheckedRef(DistributerDef.class,
- "DistributerDef");
- return refDistributer.getTcpcork();
- }
- return tcpCork;
- }
-
- /**
- * Gets protocol.
- * @return protocol, may be null.
- *
- */
- public DistributerProtocolEnum getProtocol() {
- if (isReference()) {
- DistributerDef refDistributer = (DistributerDef)
- getCheckedRef(DistributerDef.class,
- "DistributerDef");
- return refDistributer.getProtocol();
- }
- return protocol;
- }
-
- /**
- * Sets hosts.
- * @param value new value
- */
- public void setHosts(final String value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- hosts = value;
- }
-
- /**
- * Sets TCP_CORK value.
- * @param value new value
- */
- public void setTcpcork(final int value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- tcpCork = value;
- }
-
- /**
- * Sets protocol.
- * @param value new value
- */
- public void setProtocol(final DistributerProtocolEnum value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- protocol = value;
- }
-
- /**
- * Local to remote filename maps.
- * @return new map
- */
- public DistributerMap createMap() {
- DistributerMap map = new DistributerMap();
- map.setProject(getProject());
- maps.addElement(map);
- return map;
- }
-
- /**
- * Sets remote user name.
- * @param value user name
- */
- public void setUser(final String value) {
- user = value;
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java deleted file mode 100644 index aeacf551fa..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerMap.java +++ /dev/null @@ -1,218 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import java.io.File;
-import java.io.IOException;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.DataType;
-
-/**
- * Local to remote filename mapping (Experimental).
- *
- */
-public final class DistributerMap
- extends DataType {
- /**
- * if property.
- */
- private String ifCond;
-
- /**
- * unless property.
- */
- private String unlessCond;
-
- /**
- * local directory name.
- *
- */
- private File localName;
-
- /**
- * Canonical local file name.
- */
- private String canonicalPath;
-
- /**
- * remote name.
- *
- */
- private String remoteName;
-
- /**
- * Separator (/ or \) character on remote system.
- */
- private char remoteSeparator = File.separatorChar;
-
- /**
- * hosts that for which this map is valid.
- *
- */
- private String hosts;
-
- /**
- * Constructor.
- *
- */
- public DistributerMap() {
- }
-
- /**
- * Required by documentation generator.
- */
- public void execute() {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-
- /**
- * Returns true if the if and unless conditions (if any) are
- * satisfied.
- *
- * @return true if this object is active.
- */
- public boolean isActive() {
- return CUtil.isActive(getProject(), ifCond, unlessCond);
- }
-
- /**
- * Sets the property name for the 'if' condition.
- *
- * This object will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public void setIf(final String propName) {
- ifCond = propName;
- }
-
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the define will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(final String propName) {
- unlessCond = propName;
- }
-
- /**
- * Gets local directory.
- * @return local directory, may be null.
- *
- */
- public File getLocal() {
- return localName;
- }
-
- /**
- * Gets remote name for directory.
- * @return remote name, may be null.
- *
- */
- public String getRemote() {
- return remoteName;
- }
-
- /**
- * Converts the local file name to the remote name for the same file.
- *
- * @param host host
- * @param localFile local file
- * @return remote name for local file, null if unknown.
- */
- public String toRemote(final String host, final File localFile) {
- if (remoteName != null
- && (hosts == null || hosts.indexOf(host) >= 0)) {
- try {
- String canonical = localFile.getCanonicalPath();
- if (canonical.startsWith(canonicalPath)) {
- if (isActive()) {
- return remoteName
- + canonical.substring(canonicalPath.length()).replace(File.
- separatorChar, remoteSeparator);
- }
- }
- } catch (IOException ex) {
- return null;
- }
- }
- return null;
- }
-
- /**
- * Sets local directory for base of mapping.
- *
- * @param value value
- */
- public void setLocal(final File value) {
- if (value == null) {
- throw new NullPointerException("value");
- }
- if (value.exists() && !value.isDirectory()) {
- throw new BuildException("local should be a directory");
- }
- localName = value;
- try {
- canonicalPath = localName.getCanonicalPath();
- } catch (IOException ex) {
- throw new BuildException(ex);
- }
- }
-
- /**
- * Sets remote name for directory.
- * @param value remote name for directory
- */
- public void setRemote(final String value) {
- remoteName = value;
- }
-
- /**
- * Sets the separator character (/ or \) for the remote system.
- * @param value separator character
- */
- public void setRemoteSeparator(final String value) {
- if (value != null && value.length() != 1) {
- throw new BuildException("remote separator must be a single character");
- }
- remoteSeparator = value.charAt(0);
- }
-
- /**
- * Sets hosts for which this mapping is valid.
- *
- * @param value hosts
- */
- public void setHosts(final String value) {
- hosts = value;
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java deleted file mode 100644 index 5606d47a08..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.java +++ /dev/null @@ -1,50 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Distributer prococol names (experimental).
- *
- * @author Curt Arnold
- *
- */
-public final class DistributerProtocolEnum
- extends EnumeratedAttribute {
- /**
- * Constructor.
- *
- * Set by default to "distcc"
- *
- * @see java.lang.Object#Object()
- */
- public DistributerProtocolEnum() {
- setValue("distcc");
- }
-
- /**
- * Gets list of acceptable values.
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- return new String[] {
- "distcc",
- "ssh"};
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java deleted file mode 100644 index 24aef25fb6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/FileVisitor.java +++ /dev/null @@ -1,27 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-
-import org.apache.tools.ant.BuildException;
-/**
- * An abstract class implemented to walk over the fileset members of a
- * ProcessorDef
- */
-public interface FileVisitor {
- abstract void visit(File parentDir, String filename) throws BuildException;
-}
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 index d997b2f992..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerDef.java +++ /dev/null @@ -1,549 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-import net.sf.antcontrib.cpptasks.gcc.GccLinker;
-import net.sf.antcontrib.cpptasks.types.FlexLong;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LinkerArgument;
-import net.sf.antcontrib.cpptasks.types.SystemLibrarySet;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.FlexInteger;
-/**
- * A linker definition. linker elements may be placed either as children of a
- * cc element or the project element. A linker element with an id attribute may
- * be referenced by linker elements with refid or extends attributes.
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public class LinkerDef extends ProcessorDef {
- private long base;
- private String entry;
- private Boolean fixed;
- private Boolean incremental;
- private final Vector librarySets = new Vector();
- private Boolean map;
- private int stack;
- private final Vector sysLibrarySets = new Vector();
- private final Vector versionInfos = new Vector();
- private Boolean defaultflag = new Boolean(true);
- /**
- * Default constructor
- *
- * @see java.lang.Object#Object()
- */
- public LinkerDef() {
- base = -1;
- stack = -1;
- }
- private void addActiveLibrarySet(Project project, Vector libsets,
- Vector srcSets) {
- Enumeration srcenum = srcSets.elements();
- while (srcenum.hasMoreElements()) {
- LibrarySet set = (LibrarySet) srcenum.nextElement();
- if (set.isActive(project)) {
- libsets.addElement(set);
- }
- }
- }
- private void addActiveSystemLibrarySets(Project project, Vector libsets) {
- addActiveLibrarySet(project, libsets, sysLibrarySets);
- }
- private void addActiveUserLibrarySets(Project project, Vector libsets) {
- addActiveLibrarySet(project, libsets, librarySets);
- }
- /**
- * Adds a linker command-line arg.
- */
- public void addConfiguredLinkerArg(LinkerArgument arg) {
- addConfiguredProcessorArg(arg);
- }
- /**
- * Adds a compiler command-line arg.
- */
- public void addConfiguredLinkerParam(LinkerParam param) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- addConfiguredProcessorParam(param);
- }
- /**
- * Adds a system library set.
- */
- public void addLibset(LibrarySet libset) {
- if (isReference()) {
- throw super.noChildrenAllowed();
- }
- if (libset == null) {
- throw new NullPointerException("libset");
- }
- librarySets.addElement(libset);
- }
- /**
- * Adds a system library set.
- */
- public void addSyslibset(SystemLibrarySet libset) {
- if (isReference()) {
- throw super.noChildrenAllowed();
- }
- if (libset == null) {
- throw new NullPointerException("libset");
- }
- sysLibrarySets.addElement(libset);
- }
-
- /**
- * Adds desriptive version information to be included in the
- * generated file. The first active version info block will
- * be used.
- */
- public void addConfiguredVersioninfo(VersionInfo newVersionInfo) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- newVersionInfo.setProject(this.getProject());
- versionInfos.addElement(newVersionInfo);
- }
-
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform) {
- //
- // must combine some local context (the linkType)
- // with the referenced element
- //
- // get a pointer to the definition (either local or referenced)
- ProcessorDef thisDef = this;
- if (isReference()) {
- thisDef = ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef"));
- }
- //
- // find the appropriate processor (combines local linkType
- // with possibly remote linker name)
- Processor proc = getProcessor();
- proc = proc.getLinker(linkType);
- ProcessorDef[] defaultProviders = getDefaultProviders(baseDef);
- return proc.createConfiguration(task, linkType, defaultProviders,
- thisDef, targetPlatform);
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /**
- * Returns an array of active library sets for this linker definition.
- */
- public LibrarySet[] getActiveLibrarySets(LinkerDef[] defaultProviders,
- int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getActiveUserLibrarySets(defaultProviders, index);
- }
- Project p = getProject();
- Vector libsets = new Vector();
- for (int i = index; i < defaultProviders.length; i++) {
- defaultProviders[i].addActiveUserLibrarySets(p, libsets);
- defaultProviders[i].addActiveSystemLibrarySets(p, libsets);
- }
- addActiveUserLibrarySets(p, libsets);
- addActiveSystemLibrarySets(p, libsets);
- LibrarySet[] sets = new LibrarySet[libsets.size()];
- libsets.copyInto(sets);
- return sets;
- }
- /**
- * Returns an array of active library sets for this linker definition.
- */
- public LibrarySet[] getActiveSystemLibrarySets(
- LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getActiveUserLibrarySets(defaultProviders, index);
- }
- Project p = getProject();
- Vector libsets = new Vector();
- for (int i = index; i < defaultProviders.length; i++) {
- defaultProviders[i].addActiveSystemLibrarySets(p, libsets);
- }
- addActiveSystemLibrarySets(p, libsets);
- LibrarySet[] sets = new LibrarySet[libsets.size()];
- libsets.copyInto(sets);
- return sets;
- }
- /**
- * Returns an array of active library sets for this linker definition.
- */
- public LibrarySet[] getActiveUserLibrarySets(LinkerDef[] defaultProviders,
- int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getActiveUserLibrarySets(defaultProviders, index);
- }
- Project p = getProject();
- Vector libsets = new Vector();
- for (int i = index; i < defaultProviders.length; i++) {
- defaultProviders[i].addActiveUserLibrarySets(p, libsets);
- }
- addActiveUserLibrarySets(p, libsets);
- LibrarySet[] sets = new LibrarySet[libsets.size()];
- libsets.copyInto(sets);
- return sets;
- }
- public long getBase(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getBase(defaultProviders, index);
- }
- if (base <= 0) {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getBase(defaultProviders,
- index + 1);
- }
- }
- return base;
- }
- public Boolean getFixed(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getFixed(defaultProviders, index);
- }
- if (fixed == null) {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getFixed(defaultProviders,
- index + 1);
- }
- }
- return fixed;
- }
- public boolean getIncremental(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getIncremental(defaultProviders, index);
- }
- if (incremental != null) {
- return incremental.booleanValue();
- }
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getIncremental(defaultProviders, index + 1);
- }
- return false;
- }
- public boolean getMap(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getMap(defaultProviders, index);
- }
- if (map != null) {
- return map.booleanValue();
- }
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getMap(defaultProviders, index + 1);
- }
- return false;
- }
- public final Boolean getDefaultflag(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class,
- "LinkerDef")).getDefaultflag(defaultProviders, index);
- }
- return defaultflag;
- }
- public String getEntry(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getEntry(defaultProviders, index);
- }
- if (entry != null) {
- return entry;
- }
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getEntry(defaultProviders, index + 1);
- }
- return null;
- }
-
- public Processor getProcessor() {
- Linker linker = (Linker) super.getProcessor();
- if (linker == null) {
- linker = GccLinker.getInstance();
- }
- if (getLibtool() && linker instanceof CommandLineLinker) {
- CommandLineLinker cmdLineLinker = (CommandLineLinker) linker;
- linker = cmdLineLinker.getLibtoolLinker();
- }
- return linker;
- }
- public int getStack(LinkerDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
- .getStack(defaultProviders, index);
- }
- if (stack < 0) {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getStack(defaultProviders,
- index + 1);
- }
- }
- return stack;
- }
- /**
- * Sets the base address. May be specified in either decimal or hex.
- *
- * @param base
- * base address
- *
- */
- public void setBase(FlexLong base) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.base = base.longValue();
- }
- /**
- * Sets the starting address.
- *
- * @param name
- * function name
- */
- public void setEntry(String entry) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.entry = entry;
- }
- /**
- * If true, marks the file to be loaded only at its preferred address.
- */
- public void setFixed(boolean fixed) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.fixed = booleanValueOf(fixed);
- }
- /**
- * If true, allows incremental linking.
- *
- */
- public void setIncremental(boolean incremental) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.incremental = booleanValueOf(incremental);
- }
- /**
- * If set to true, a map file will be produced.
- */
- public void setMap(boolean map) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.map = booleanValueOf(map);
- }
- /**
- * Sets linker type.
- *
- *
- * <table width="100%" border="1"> <thead>Supported linkers </thead>
- * <tr>
- * <td>gcc</td>
- * <td>Gcc Linker</td>
- * </tr>
- * <tr>
- * <td>g++</td>
- * <td>G++ Linker</td>
- * </tr>
- * <tr>
- * <td>ld</td>
- * <td>Ld Linker</td>
- * </tr>
- * <tr>
- * <td>ar</td>
- * <td>Gcc Librarian</td>
- * </tr>
- * <tr>
- * <td>msvc</td>
- * <td>Microsoft Linker</td>
- * </tr>
- * <tr>
- * <td>bcc</td>
- * <td>Borland Linker</td>
- * </tr>
- * <tr>
- * <td>df</td>
- * <td>Compaq Visual Fortran Linker</td>
- * </tr>
- * <tr>
- * <td>icl</td>
- * <td>Intel Linker for Windows (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecl</td>
- * <td>Intel Linker for Windows (IA-64)</td>
- * </tr>
- * <tr>
- * <td>icc</td>
- * <td>Intel Linker for Linux (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecc</td>
- * <td>Intel Linker for Linux (IA-64)</td>
- * </tr>
- * <tr>
- * <td>CC</td>
- * <td>Sun ONE Linker</td>
- * </tr>
- * <tr>
- * <td>aCC</td>
- * <td>HP aC++ Linker</td>
- * </tr>
- * <tr>
- * <td>os390</td>
- * <td>OS390 Linker</td>
- * </tr>
- * <tr>
- * <td>os390batch</td>
- * <td>OS390 Linker</td>
- * </tr>
- * <tr>
- * <td>os400</td>
- * <td>IccLinker</td>
- * </tr>
- * <tr>
- * <td>sunc89</td>
- * <td>C89 Linker</td>
- * </tr>
- * <tr>
- * <td>xlC</td>
- * <td>VisualAge Linker</td>
- * </tr>
- * </table>
- *
- */
- public void setName(LinkerEnum name) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- Linker linker = name.getLinker();
- super.setProcessor(linker);
- }
- protected void setProcessor(Processor proc) throws BuildException {
- Linker linker = null;
- if (proc instanceof Linker) {
- linker = (Linker) proc;
- } else {
- LinkType linkType = new LinkType();
- linker = proc.getLinker(linkType);
- }
- super.setProcessor(linker);
- }
- /**
- * Sets stack size in bytes.
- */
- public void setStack(FlexInteger stack) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.stack = stack.intValue();
- }
- public void visitSystemLibraries(Linker linker, FileVisitor libraryVisitor) {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- LinkerDef master = ((LinkerDef) getCheckedRef(LinkerDef.class,
- "Linker"));
- master.visitSystemLibraries(linker, libraryVisitor);
- } else {
- //
- // if this linker extends another,
- // visit its libraries first
- //
- LinkerDef extendsDef = (LinkerDef) getExtends();
- if (extendsDef != null) {
- extendsDef.visitSystemLibraries(linker, libraryVisitor);
- }
- if (sysLibrarySets.size() > 0) {
- File[] libpath = linker.getLibraryPath();
- for (int i = 0; i < sysLibrarySets.size(); i++) {
- LibrarySet set = (LibrarySet) sysLibrarySets.elementAt(i);
- if (set.isActive(p)) {
- set.visitLibraries(p, linker, libpath,
- libraryVisitor);
- }
- }
- }
- }
- }
- public void visitUserLibraries(Linker linker, FileVisitor libraryVisitor) {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- LinkerDef master = ((LinkerDef) getCheckedRef(LinkerDef.class,
- "Linker"));
- master.visitUserLibraries(linker, libraryVisitor);
- } else {
- //
- // if this linker extends another,
- // visit its libraries first
- //
- LinkerDef extendsDef = (LinkerDef) getExtends();
- if (extendsDef != null) {
- extendsDef.visitUserLibraries(linker, libraryVisitor);
- }
- //
- // visit the user libraries
- //
- if (librarySets.size() > 0) {
- File[] libpath = linker.getLibraryPath();
- for (int i = 0; i < librarySets.size(); i++) {
- LibrarySet set = (LibrarySet) librarySets.elementAt(i);
- if (set.isActive(p)) {
- set.visitLibraries(p, linker, libpath,
- libraryVisitor);
- }
- }
- }
- }
- }
- /**
- * Enables or disables default flags.
- *
- * @param defaultflag
- * if true, default flags will add to command line.
- *
- */
- public void setDefaultflag(boolean defaultflag) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.defaultflag = booleanValueOf(defaultflag);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java deleted file mode 100644 index cfe8984c23..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerEnum.java +++ /dev/null @@ -1,106 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import net.sf.antcontrib.cpptasks.arm.ADSLinker;
-import net.sf.antcontrib.cpptasks.borland.BorlandLinker;
-import net.sf.antcontrib.cpptasks.compaq.CompaqVisualFortranLinker;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker;
-import net.sf.antcontrib.cpptasks.gcc.GccLibrarian;
-import net.sf.antcontrib.cpptasks.gcc.GccLinker;
-import net.sf.antcontrib.cpptasks.gcc.GppLinker;
-import net.sf.antcontrib.cpptasks.gcc.LdLinker;
-import net.sf.antcontrib.cpptasks.hp.aCCLinker;
-import net.sf.antcontrib.cpptasks.ibm.VisualAgeLinker;
-import net.sf.antcontrib.cpptasks.intel.IntelLinux32Linker;
-import net.sf.antcontrib.cpptasks.intel.IntelLinux64Linker;
-import net.sf.antcontrib.cpptasks.intel.IntelWin32Linker;
-import net.sf.antcontrib.cpptasks.os390.OS390Linker;
-import net.sf.antcontrib.cpptasks.os400.IccLinker;
-import net.sf.antcontrib.cpptasks.sun.C89Linker;
-import net.sf.antcontrib.cpptasks.sun.ForteCCLinker;
-import net.sf.antcontrib.cpptasks.ti.ClxxLinker;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-/**
- * Enumeration of supported linkers
- *
- * @author Curt Arnold
- *
- */
-public class LinkerEnum extends EnumeratedAttribute {
- private final static ProcessorEnumValue[] linkers = new ProcessorEnumValue[]{
- new ProcessorEnumValue("gcc", GccLinker.getInstance()),
- new ProcessorEnumValue("g++", GppLinker.getInstance()),
- new ProcessorEnumValue("ld", LdLinker.getInstance()),
- new ProcessorEnumValue("ar", GccLibrarian.getInstance()),
- new ProcessorEnumValue("msvc", DevStudioLinker.getInstance()),
- new ProcessorEnumValue("bcc", BorlandLinker.getInstance()),
- new ProcessorEnumValue("df", CompaqVisualFortranLinker
- .getInstance()),
- new ProcessorEnumValue("icl", IntelWin32Linker.getInstance()),
- new ProcessorEnumValue("ecl", IntelWin32Linker.getInstance()),
- new ProcessorEnumValue("icc", IntelLinux32Linker.getInstance()),
- new ProcessorEnumValue("ecc", IntelLinux64Linker.getInstance()),
- new ProcessorEnumValue("CC", ForteCCLinker.getInstance()),
- new ProcessorEnumValue("aCC", aCCLinker.getInstance()),
- new ProcessorEnumValue("os390", OS390Linker.getInstance()),
- new ProcessorEnumValue("os390batch", OS390Linker
- .getDataSetInstance()),
- new ProcessorEnumValue("os400", IccLinker.getInstance()),
- new ProcessorEnumValue("sunc89", C89Linker.getInstance()),
- new ProcessorEnumValue("xlC", VisualAgeLinker.getInstance()),
- new ProcessorEnumValue("cl6x", ClxxLinker.getCl6xInstance()),
- new ProcessorEnumValue("cl55", ClxxLinker.getCl55Instance()),
- new ProcessorEnumValue("armcc", ADSLinker.getInstance()),
- new ProcessorEnumValue("armcpp", ADSLinker.getInstance()),
- new ProcessorEnumValue("tcc", ADSLinker.getInstance()),
- new ProcessorEnumValue("tcpp", ADSLinker.getInstance()),
- // gcc cross compilers
- new ProcessorEnumValue(
- "sparc-sun-solaris2-gcc",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccLinker
- .getInstance()),
- new ProcessorEnumValue(
- "sparc-sun-solaris2-g++",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GppLinker
- .getInstance()),
- new ProcessorEnumValue(
- "sparc-sun-solaris2-ld",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.LdLinker
- .getInstance()),
- new ProcessorEnumValue(
- "sparc-sun-solaris2-ar",
- net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2.GccLibrarian
- .getInstance()),
- new ProcessorEnumValue("gcc-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GccLinker
- .getInstance()),
- new ProcessorEnumValue("g++-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GppLinker
- .getInstance()),
- new ProcessorEnumValue("ld-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.LdLinker.getInstance()),
- new ProcessorEnumValue("ar-cross",
- net.sf.antcontrib.cpptasks.gcc.cross.GccLibrarian
- .getInstance()),};
- public Linker getLinker() {
- return (Linker) linkers[getIndex()].getProcessor();
- }
- public String[] getValues() {
- return ProcessorEnumValue.getValues(linkers);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java deleted file mode 100644 index 383bae55c9..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/LinkerParam.java +++ /dev/null @@ -1,33 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-/*******************************************************************************
- * Place class description here.
- *
- * @author inger
- * @author <additional author>
- *
- * @since
- ******************************************************************************/
-public class LinkerParam extends ProcessorParam {
- public LinkerParam() {
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java deleted file mode 100644 index 536d9922d3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OSFamilyEnum.java +++ /dev/null @@ -1,59 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Enumeration of cpu types.
- *
- * @author Curt Arnold
- *
- */
-public final class OSFamilyEnum
- extends EnumeratedAttribute {
- /**
- * Constructor.
- *
- * Set by default to "pentium3"
- *
- * @see java.lang.Object#Object()
- */
- public OSFamilyEnum() {
- setValue("windows");
- }
-
- /**
- * Gets list of acceptable values.
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- return new String[] {
- "windows",
- "dos",
- "mac",
- "unix",
- "netware",
- "os/2",
- "tandem",
- "win9x",
- "z/os",
- "os/400",
- "openvms"};
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java deleted file mode 100644 index 3e97fa40af..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ObjectFileCollector.java +++ /dev/null @@ -1,42 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Collects object files for the link step.
- *
- *
- */
-public final class ObjectFileCollector implements FileVisitor {
- private final Vector files;
- private final Linker linker;
- public ObjectFileCollector(Linker linker, Vector files) {
- this.linker = linker;
- this.files = files;
- }
- public void visit(File parentDir, String filename) throws BuildException {
- int bid = linker.bid(filename);
- if (bid >= 1) {
- files.addElement(new File(parentDir, filename));
- }
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java deleted file mode 100644 index 4a0d17953e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OptimizationEnum.java +++ /dev/null @@ -1,82 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
-/**
- * Enumeration of optimization levels (experimental).
- *
- * @author Curt Arnold
- *
- */
-public final class OptimizationEnum
- extends EnumeratedAttribute {
- /**
- * Constructor.
- *
- * Set by default to "speed"
- *
- * @see java.lang.Object#Object()
- */
- public OptimizationEnum() {
- setValue("speed");
- }
-
- /**
- * Gets list of acceptable values.
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- return new String[] {
- "none",
- "size",
- "minimal",
- "speed",
- "full",
- "aggressive",
- "extreme",
- "unsafe"
- };
- }
-
- /**
- * Is size optimized.
- * @return boolean true if size is optimized.
- */
- public boolean isSize() {
- return "speed".equals(getValue());
- }
-
- /**
- * Is speed optimized.
- * @return boolean true if speed is optimized.
- */
- public boolean isSpeed() {
- return !isSize() && !isNoOptimization();
- }
-
- /**
- * Is no optimization performed.
- * @return boolean true if no optimization is performed.
- */
- public boolean isNoOptimization() {
- return "none".equals(getValue());
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java deleted file mode 100644 index fb37843fbc..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/OutputTypeEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-/**
- * Enumeration of supported subsystems
- *
- * @author Curt Arnold
- *
- */
-public class OutputTypeEnum extends EnumeratedAttribute {
- /**
- * Constructor
- *
- * Set by default to "executable"
- *
- * @see java.lang.Object#Object()
- */
- public OutputTypeEnum() {
- setValue("executable");
- }
- /**
- * Gets list of acceptable values
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- return new String[]{"executable", // executable program
- "plugin", // plugin module
- "shared", // dynamically linkable module
- "static" // convenience library
- };
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java deleted file mode 100644 index 828e2c2f48..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileDef.java +++ /dev/null @@ -1,215 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.types.ConditionalFileSet;
-
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.types.DataType;
-/**
- * An element that specifies a prototype file and rules for source files that
- * should not use precompiled headers
- *
- * @author Curt Arnold
- */
-public final class PrecompileDef extends DataType {
- private final Vector exceptSets = new Vector();
- private String ifCond;
- /**
- * Directory of prototype file
- */
- private File prototype = new File("stdafx.cpp");
- private String unlessCond;
- /**
- * Constructor
- *
- */
- public PrecompileDef() {
- }
- /**
- * Method used by PrecompileExceptDef to add exception set to
- * PrecompileDef.
- */
- public void appendExceptFileSet(ConditionalFileSet exceptSet) {
- exceptSet.setProject(getProject());
- exceptSets.addElement(exceptSet);
- }
- /**
- * Adds filesets that specify files that should not be processed with
- * precompiled headers enabled.
- *
- * @param exceptSet
- * FileSet specify files that should not be processed with
- * precompiled headers enabled.
- */
- public PrecompileExceptDef createExcept() {
- return new PrecompileExceptDef(this);
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- public String[] getExceptFiles() {
- PrecompileDef ref = getRef();
- if (ref != null) {
- return ref.getExceptFiles();
- }
- if (exceptSets.size() == 0) {
- return new String[0];
- }
- Project p = getProject();
- String[] exceptFiles = null;
- Enumeration setEnum = exceptSets.elements();
- while (setEnum.hasMoreElements()) {
- ConditionalFileSet exceptSet = (ConditionalFileSet) setEnum
- .nextElement();
- if (exceptSet.isActive()) {
- DirectoryScanner scanner = exceptSet
- .getDirectoryScanner(p);
- String[] scannerFiles = scanner.getIncludedFiles();
- if (exceptFiles == null) {
- exceptFiles = scannerFiles;
- } else {
- if (scannerFiles.length > 0) {
- String[] newFiles = new String[exceptFiles.length
- + scannerFiles.length];
- for (int i = 0; i < exceptFiles.length; i++) {
- newFiles[i] = exceptFiles[i];
- }
- int index = exceptFiles.length;
- for (int i = 0; i < scannerFiles.length; i++) {
- newFiles[index++] = scannerFiles[i];
- }
- exceptFiles = newFiles;
- }
- }
- }
- }
- if (exceptFiles == null) {
- exceptFiles = new String[0];
- }
- return exceptFiles;
- }
- /**
- * Gets prototype source file
- *
- */
- public File getPrototype() {
- PrecompileDef ref = getRef();
- if (ref != null) {
- return ref.getPrototype();
- }
- return prototype;
- }
- private PrecompileDef getRef() {
- if (isReference()) {
- return ((PrecompileDef) getCheckedRef(PrecompileDef.class,
- "PrecompileDef"));
- }
- return null;
- }
- public boolean isActive() {
- boolean isActive = CUtil.isActive(getProject(), ifCond, unlessCond);
- if (!isActive) {
- PrecompileDef ref = getRef();
- if (ref != null) {
- return ref.isActive();
- }
- }
- return isActive;
- }
- /**
- * Sets a description of the current data type.
- */
- public void setDescription(String desc) {
- super.setDescription(desc);
- }
- /**
- * Sets an id that can be used to reference this element.
- *
- * @param id
- * id
- */
- public void setId(String id) {
- //
- // this is actually accomplished by a different
- // mechanism, but we can document it
- //
- }
- /**
- * Set the 'if' condition.
- *
- * The processor will be ignored unless the property is defined.
- *
- * The value of property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * isActive() is evaluated.
- *
- * @param propName
- * name of property
- */
- public void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Sets file to precompile.
- *
- * Should be a source file that includes only one unguarded header file.
- * Default value is "stdafx.cpp".
- *
- * @param prototype
- * file path for prototype source file
- */
- public void setPrototype(File prototype) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- if (prototype == null) {
- throw new NullPointerException("prototype");
- }
- this.prototype = prototype;
- }
- /**
- * Specifies that this element should behave as if the content of the
- * element with the matching id attribute was inserted at this location.
- *
- * @param ref
- * Reference to other element
- *
- */
- public void setRefid(org.apache.tools.ant.types.Reference ref) {
- super.setRefid(ref);
- }
- /**
- * Set the 'unless' condition. If named property exists at execution time,
- * the processor will be ignored.
- *
- * Value of property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when isActive is called.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessCond = propName;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java deleted file mode 100644 index d6cdd6025f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/PrecompileExceptDef.java +++ /dev/null @@ -1,80 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.types.ConditionalFileSet;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Specifies files that should not be compiled using precompiled headers.
- *
- * @author Curt Arnold
- */
-public final class PrecompileExceptDef {
- private ConditionalFileSet localSet = null;
- /**
- * Collection of <fileset>contained by definition
- */
- private PrecompileDef owner;
- /**
- * Constructor
- *
- */
- public PrecompileExceptDef(PrecompileDef owner) {
- this.owner = owner;
- }
- /**
- * Adds filesets that specify files that should not be processed using
- * precompiled headers.
- *
- * @param exceptSet
- * FileSet specify files that should not be processed with
- * precompiled headers enabled.
- */
- public void addFileset(ConditionalFileSet exceptSet) {
- owner.appendExceptFileSet(exceptSet);
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /**
- * Sets the base-directory
- */
- public void setDir(File dir) throws BuildException {
- if (localSet == null) {
- localSet = new ConditionalFileSet();
- owner.appendExceptFileSet(localSet);
- }
- localSet.setDir(dir);
- }
- /**
- * Comma or space separated list of file patterns that should not be
- * compiled using precompiled headers.
- *
- * @param includes
- * the string containing the include patterns
- */
- public void setIncludes(String includes) {
- if (localSet == null) {
- localSet = new ConditionalFileSet();
- owner.appendExceptFileSet(localSet);
- }
- localSet.setIncludes(includes);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java deleted file mode 100644 index 38faf427e7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorDef.java +++ /dev/null @@ -1,714 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-import net.sf.antcontrib.cpptasks.types.ConditionalFileSet;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.DataType;
-import org.apache.tools.ant.types.Environment;
-import org.apache.tools.ant.types.Reference;
-/**
- * An abstract compiler/linker definition.
- *
- * @author Curt Arnold
- */
-public abstract class ProcessorDef extends DataType {
- /**
- * Returns the equivalent Boolean object for the specified value
- *
- * Equivalent to Boolean.valueOf in JDK 1.4
- *
- * @param val
- * boolean value
- * @return Boolean.TRUE or Boolean.FALSE
- */
- protected static Boolean booleanValueOf(boolean val) {
- if (val) {
- return Boolean.TRUE;
- }
- return Boolean.FALSE;
- }
- /**
- * if true, targets will be built for debugging
- */
- private Boolean debug;
- private Environment env = null;
- /**
- * Reference for "extends" processor definition
- */
- private Reference extendsRef = null;
- /**
- * Name of property that must be present or definition will be ignored. May
- * be null.
- */
- private String ifProp;
- /**
- * if true, processor definition inherits values from containing <cc>
- * element
- */
- private boolean inherit;
- private Boolean libtool = null;
- protected boolean newEnvironment = false;
- /**
- * Processor.
- */
- private Processor processor;
- /**
- * Collection of <compilerarg>or <linkerarg>contained by definition
- */
- private final Vector processorArgs = new Vector();
- /**
- * Collection of <compilerparam>or <linkerparam>contained by definition
- */
- private final Vector processorParams = new Vector();
- /**
- * if true, all targets will be unconditionally rebuilt
- */
- private Boolean rebuild;
- /**
- * Collection of <fileset>contained by definition
- */
- private final Vector srcSets = new Vector();
- /**
- * Name of property that if present will cause definition to be ignored.
- * May be null.
- */
- private String unlessProp;
- /**
- * Constructor
- *
- */
- protected ProcessorDef() throws NullPointerException {
- inherit = true;
- }
- /**
- * Adds a <compilerarg>or <linkerarg>
- *
- * @param arg
- * command line argument, must not be null
- * @throws NullPointerException
- * if arg is null
- * @throws BuildException
- * if this definition is a reference
- */
- protected void addConfiguredProcessorArg(CommandLineArgument arg)
- throws NullPointerException, BuildException {
- if (arg == null) {
- throw new NullPointerException("arg");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- if(arg.getFile() == null ) {
- processorArgs.addElement(arg);
- }
- else {
- loadFile(arg.getFile());
- }
- }
- /**
- * Add a <compilerarg>or <linkerarg> if specify the file attribute
- *
- * @param arg
- * command line argument, must not be null
- * @throws BuildException
- * if the specify file not exist
- */
- protected void loadFile(File file)
- throws BuildException {
- FileReader fileReader;
- BufferedReader in;
- String str;
- if (! file.exists()){
- throw new BuildException("The file " + file + " is not existed");
- }
- try {
- fileReader = new FileReader(file);
- in = new BufferedReader(fileReader);
- while ( (str = in.readLine()) != null ){
- if(str.trim() == ""){
- continue ;
- }
- str = getProject().replaceProperties(str);
- CommandLineArgument newarg = new CommandLineArgument();
- newarg.setValue(str.trim());
- processorArgs.addElement(newarg);
- }
- }
- catch(Exception e){
- throw new BuildException(e.getMessage());
- }
- }
- /**
- * Adds a <compilerarg>or <linkerarg>
- *
- * @param arg
- * command line argument, must not be null
- * @throws NullPointerException
- * if arg is null
- * @throws BuildException
- * if this definition is a reference
- */
- protected void addConfiguredProcessorParam(ProcessorParam param)
- throws NullPointerException, BuildException {
- if (param == null) {
- throw new NullPointerException("param");
- }
- if (isReference()) {
- throw noChildrenAllowed();
- }
- processorParams.addElement(param);
- }
- /**
- * Add an environment variable to the launched process.
- */
- public void addEnv(Environment.Variable var) {
- if (env == null) {
- env = new Environment();
- }
- env.addVariable(var);
- }
- /**
- * Adds a source file set.
- *
- * Files in these set will be processed by this configuration and will not
- * participate in the auction.
- *
- * @param srcSet
- * Fileset identifying files that should be processed by this
- * processor
- * @throws BuildException
- * if processor definition is a reference
- */
- public void addFileset(ConditionalFileSet srcSet) throws BuildException {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- srcSet.setProject(getProject());
- srcSets.addElement(srcSet);
- }
- /**
- * Creates a configuration
- *
- * @param baseDef
- * reference to def from containing <cc>element, may be null
- * @return configuration
- *
- */
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef baseDef, TargetDef targetPlatform) {
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).createConfiguration(task, linkType,
- baseDef, targetPlatform);
- }
- ProcessorDef[] defaultProviders = getDefaultProviders(baseDef);
- Processor proc = getProcessor();
- return proc.createConfiguration(task, linkType, defaultProviders, this, targetPlatform);
- }
- /**
- * Prepares list of processor arguments ( <compilerarg>, <linkerarg>) that
- * are active for the current project settings.
- *
- * @return active compiler arguments
- */
- public CommandLineArgument[] getActiveProcessorArgs() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getActiveProcessorArgs();
- }
- Vector activeArgs = new Vector(processorArgs.size());
- for (int i = 0; i < processorArgs.size(); i++) {
- CommandLineArgument arg = (CommandLineArgument) processorArgs
- .elementAt(i);
- if (arg.isActive(p)) {
- activeArgs.addElement(arg);
- }
- }
- CommandLineArgument[] array = new CommandLineArgument[activeArgs.size()];
- activeArgs.copyInto(array);
- return array;
- }
- /**
- * Prepares list of processor arguments ( <compilerarg>, <linkerarg>) that
- * are active for the current project settings.
- *
- * @return active compiler arguments
- */
- public ProcessorParam[] getActiveProcessorParams() {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException("project must be set");
- }
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getActiveProcessorParams();
- }
- Vector activeParams = new Vector(processorParams.size());
- for (int i = 0; i < processorParams.size(); i++) {
- ProcessorParam param = (ProcessorParam) processorParams
- .elementAt(i);
- if (param.isActive(p)) {
- activeParams.addElement(param);
- }
- }
- ProcessorParam[] array = new ProcessorParam[activeParams.size()];
- activeParams.copyInto(array);
- return array;
- }
- /**
- * Gets boolean indicating debug build
- *
- * @param defaultProviders
- * array of ProcessorDef's in descending priority
- * @param index
- * index to first element in array that should be considered
- * @return if true, built targets for debugging
- */
- public boolean getDebug(ProcessorDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getDebug(defaultProviders, index);
- }
- if (debug != null) {
- return debug.booleanValue();
- } else {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getDebug(defaultProviders,
- index + 1);
- }
- }
- return false;
- }
- /**
- * Creates an chain of objects which provide default values in descending
- * order of significance.
- *
- * @param baseDef
- * corresponding ProcessorDef from CCTask, will be last element
- * in array unless inherit = false
- * @return default provider array
- *
- */
- protected final ProcessorDef[] getDefaultProviders(ProcessorDef baseDef) {
- ProcessorDef extendsDef = getExtends();
- Vector chain = new Vector();
- while (extendsDef != null && !chain.contains(extendsDef)) {
- chain.addElement(extendsDef);
- extendsDef = extendsDef.getExtends();
- }
- if (baseDef != null && getInherit()) {
- chain.addElement(baseDef);
- }
- ProcessorDef[] defaultProviders = new ProcessorDef[chain.size()];
- chain.copyInto(defaultProviders);
- return defaultProviders;
- }
- /**
- * Gets the ProcessorDef specified by the extends attribute
- *
- * @return Base ProcessorDef, null if extends is not specified
- * @throws BuildException
- * if reference is not same type object
- */
- public ProcessorDef getExtends() throws BuildException {
- if (extendsRef != null) {
- Object obj = extendsRef.getReferencedObject(getProject());
- if (!getClass().isInstance(obj)) {
- throw new BuildException("Referenced object "
- + extendsRef.getRefId() + " not correct type, is "
- + obj.getClass().getName() + " should be "
- + getClass().getName());
- }
- return (ProcessorDef) obj;
- }
- return null;
- }
- /**
- * Gets the inherit attribute. If the inherit value is true, this processor
- * definition will inherit default values from the containing <cc>element.
- *
- * @return if true then properties from the containing <cc>element are
- * used.
- */
- public final boolean getInherit() {
- return inherit;
- }
- public boolean getLibtool() {
- if (libtool != null) {
- return libtool.booleanValue();
- }
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getLibtool();
- }
- ProcessorDef extendsDef = getExtends();
- if (extendsDef != null) {
- return extendsDef.getLibtool();
- }
- return false;
- }
- /**
- * Obtains the appropriate processor (compiler, linker)
- *
- * @return processor
- */
- protected Processor getProcessor() {
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getProcessor();
- }
- //
- // if a processor has not been explicitly set
- // then may be set by an extended definition
- if (processor == null) {
- ProcessorDef extendsDef = getExtends();
- if (extendsDef != null) {
- return extendsDef.getProcessor();
- }
- }
- return processor;
- }
- /**
- * Gets a boolean value indicating whether all targets must be rebuilt
- * regardless of dependency analysis.
- *
- * @param defaultProviders
- * array of ProcessorDef's in descending priority
- * @param index
- * index to first element in array that should be considered
- * @return true if all targets should be rebuilt.
- */
- public boolean getRebuild(ProcessorDef[] defaultProviders, int index) {
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getRebuild(defaultProviders, index);
- }
- if (rebuild != null) {
- return rebuild.booleanValue();
- } else {
- if (defaultProviders != null && index < defaultProviders.length) {
- return defaultProviders[index].getRebuild(defaultProviders,
- index + 1);
- }
- }
- return false;
- }
- /**
- * Returns true if the processor definition contains embedded file set
- * definitions
- *
- * @return true if processor definition contains embedded filesets
- */
- public boolean hasFileSets() {
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).hasFileSets();
- }
- return srcSets.size() > 0;
- }
- /**
- * Determine if this def should be used.
- *
- * Definition will be active if the "if" variable (if specified) is set and
- * the "unless" variable (if specified) is not set and that all reference
- * or extended definitions are active
- *
- * @return true if processor is active
- * @throws IllegalStateException
- * if not properly initialized
- * @throws BuildException
- * if "if" or "unless" variable contains suspicious values
- * "false" or "no" which indicates possible confusion
- */
- public boolean isActive() throws BuildException, IllegalStateException {
- Project project = getProject();
- if (!CUtil.isActive(project, ifProp, unlessProp)) {
- return false;
- }
- if (isReference()) {
- if (!((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).isActive()) {
- return false;
- }
- }
- //
- // walk through any extended definitions
- //
- ProcessorDef[] defaultProviders = getDefaultProviders(null);
- for (int i = 0; i < defaultProviders.length; i++) {
- if (!defaultProviders[i].isActive()) {
- return false;
- }
- }
- return true;
- }
- /**
- * Sets the class name for the adapter. Use the "name" attribute when the
- * tool is supported.
- *
- * @param className
- * full class name
- *
- */
- public void setClassname(String className) throws BuildException {
- Object proc = null;
- try {
- Class implClass = ProcessorDef.class.getClassLoader().loadClass(
- className);
- try {
- Method getInstance = implClass.getMethod("getInstance",
- new Class[0]);
- proc = getInstance.invoke(null, new Object[0]);
- } catch (Exception ex) {
- proc = implClass.newInstance();
- }
- } catch (Exception ex) {
- throw new BuildException(ex);
- }
- setProcessor((Processor) proc);
- }
- /**
- * If set true, all targets will be built for debugging.
- *
- * @param debug
- * true if targets should be built for debugging
- * @throws BuildException
- * if processor definition is a reference
- */
- public void setDebug(boolean debug) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.debug = booleanValueOf(debug);
- }
- /**
- * Sets a description of the current data type.
- */
- public void setDescription(String desc) {
- super.setDescription(desc);
- }
- /**
- * Specifies that this element extends the element with id attribute with a
- * matching value. The configuration will be constructed from the settings
- * of this element, element referenced by extends, and the containing cc
- * element.
- *
- * @param extendsRef
- * Reference to the extended processor definition.
- * @throws BuildException
- * if this processor definition is a reference
- */
- public void setExtends(Reference extendsRef) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.extendsRef = extendsRef;
- }
- /**
- * Sets an id that can be used to reference this element.
- *
- * @param id
- * id
- */
- public void setId(String id) {
- //
- // this is actually accomplished by a different
- // mechanism, but we can document it
- //
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The configuration will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * name of property
- */
- public void setIf(String propName) {
- ifProp = propName;
- }
- /**
- * If inherit has the default value of true, defines, includes and other
- * settings from the containing <cc>element will be inherited.
- *
- * @param inherit
- * new value
- * @throws BuildException
- * if processor definition is a reference
- */
- public void setInherit(boolean inherit) throws BuildException {
- if (isReference()) {
- throw super.tooManyAttributes();
- }
- this.inherit = inherit;
- }
- /**
- * Set use of libtool.
- *
- * If set to true, the "libtool " will be prepended to the command line
- *
- * @param libtool
- * If true, use libtool.
- */
- public void setLibtool(boolean libtool) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.libtool = booleanValueOf(libtool);
- }
- /**
- * Do not propagate old environment when new environment variables are
- * specified.
- */
- public void setNewenvironment(boolean newenv) {
- newEnvironment = newenv;
- }
- /**
- * Sets the processor
- *
- * @param processor
- * processor, may not be null.
- * @throws BuildException
- * if ProcessorDef is a reference
- * @throws NullPointerException
- * if processor is null
- */
- protected void setProcessor(Processor processor) throws BuildException,
- NullPointerException {
- if (processor == null) {
- throw new NullPointerException("processor");
- }
- if (isReference()) {
- throw super.tooManyAttributes();
- }
- if (env == null && !newEnvironment) {
- this.processor = processor;
- } else {
- this.processor = processor.changeEnvironment(newEnvironment, env);
- }
- }
- /**
- * If set true, all targets will be unconditionally rebuilt.
- *
- * @param rebuild
- * if true, rebuild all targets.
- * @throws BuildException
- * if processor definition is a reference
- */
- public void setRebuild(boolean rebuild) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.rebuild = booleanValueOf(rebuild);
- }
- /**
- * Specifies that this element should behave as if the content of the
- * element with the matching id attribute was inserted at this location. If
- * specified, no other attributes or child content should be specified,
- * other than "if", "unless" and "description".
- *
- * @param ref
- * Reference to other element
- *
- */
- public void setRefid(org.apache.tools.ant.types.Reference ref) {
- super.setRefid(ref);
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the configuration will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessProp = propName;
- }
- /**
- * This method calls the FileVistor's visit function for every file in the
- * processors definition
- *
- * @param visitor
- * object whose visit method is called for every file
- */
- public void visitFiles(FileVisitor visitor) {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException(
- "project must be set before this call");
- }
- if (isReference()) {
- ((ProcessorDef) getCheckedRef(ProcessorDef.class, "ProcessorDef"))
- .visitFiles(visitor);
- }
- //
- // if this processor extends another,
- // visit its files first
- //
- ProcessorDef extendsDef = getExtends();
- if (extendsDef != null) {
- extendsDef.visitFiles(visitor);
- }
- for (int i = 0; i < srcSets.size(); i++) {
- ConditionalFileSet srcSet = (ConditionalFileSet) srcSets
- .elementAt(i);
- if (srcSet.isActive()) {
- // Find matching source files
- DirectoryScanner scanner = srcSet.getDirectoryScanner(p);
- // Check each source file - see if it needs compilation
- String[] fileNames = scanner.getIncludedFiles();
- File parentDir = scanner.getBasedir();
- for (int j = 0; j < fileNames.length; j++) {
- String currentFile = fileNames[j];
- visitor.visit(parentDir, currentFile);
- }
- }
- }
- }
- public Vector getSrcSets() {
- if (isReference()) {
- return ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef")).getSrcSets();
- }
- return srcSets;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java deleted file mode 100644 index d028052232..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorEnumValue.java +++ /dev/null @@ -1,47 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-/**
- * One entry in the arrays used by the CompilerEnum and LinkerEnum classes.
- *
- * @author Curt Arnold
- * @see CompilerEnum
- * @see LinkerEnum
- *
- */
-public class ProcessorEnumValue {
- public static String[] getValues(ProcessorEnumValue[] processors) {
- String[] values = new String[processors.length];
- for (int i = 0; i < processors.length; i++) {
- values[i] = processors[i].getName();
- }
- return values;
- }
- private String name;
- private Processor processor;
- public ProcessorEnumValue(String name, Processor processor) {
- this.name = name;
- this.processor = processor;
- }
- public String getName() {
- return name;
- }
- public Processor getProcessor() {
- return processor;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java deleted file mode 100644 index b2d47962ed..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ProcessorParam.java +++ /dev/null @@ -1,100 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-/*******************************************************************************
- * Place class description here.
- *
- * @author inger
- * @author <additional author>
- *
- * @since
- ******************************************************************************/
-public class ProcessorParam {
- private String ifCond;
- private String name;
- private String unlessCond;
- private String value;
- public ProcessorParam() {
- }
- public String getName() {
- return name;
- }
- public String getValue() {
- return value;
- }
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- */
- public boolean isActive(org.apache.tools.ant.Project p) {
- if (value == null) {
- return false;
- }
- if (ifCond != null && p.getProperty(ifCond) == null) {
- return false;
- } else if (unlessCond != null && p.getProperty(unlessCond) != null) {
- return false;
- }
- return true;
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The argument will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- */
- public void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Specifies relative location of argument on command line. "start" will
- * place argument at start of command line, "mid" will place argument after
- * all "start" arguments but before filenames, "end" will place argument
- * after filenames.
- *
- */
- public void setName(String name) {
- this.name = name;
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the argument will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessCond = propName;
- }
- /**
- * Specifies the string that should appear on the command line. The
- * argument will be quoted if it contains embedded blanks. Use multiple
- * arguments to avoid quoting.
- *
- */
- public void setValue(String value) {
- this.value = value;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java deleted file mode 100644 index 02da661917..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/RuntimeType.java +++ /dev/null @@ -1,26 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-/**
- * Enumerated attribute with the values "dynamic" and "static",
- */
-public class RuntimeType extends EnumeratedAttribute {
- public String[] getValues() {
- return new String[]{"dynamic", "static"};
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java deleted file mode 100644 index 0c608b4d87..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SourceHistory.java +++ /dev/null @@ -1,51 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-import java.io.IOException;
-/**
- * The history of a source file used to build a target
- *
- * @author Curt Arnold
- */
-public final class SourceHistory {
- private/* final */long lastModified;
- private/* final */String relativePath;
- /**
- * Constructor
- */
- public SourceHistory(String relativePath, long lastModified) {
- if (relativePath == null) {
- throw new NullPointerException("relativePath");
- }
- this.relativePath = relativePath;
- this.lastModified = lastModified;
- }
- public String getAbsolutePath(File baseDir) {
- try {
- return new File(baseDir, relativePath).getCanonicalPath();
- } catch (IOException ex) {
- }
- return relativePath;
- }
- public long getLastModified() {
- return lastModified;
- }
- public String getRelativePath() {
- return relativePath;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java deleted file mode 100644 index 3dc342a38a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/SubsystemEnum.java +++ /dev/null @@ -1,34 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-/**
- * Enumeration of supported subsystems
- *
- * @author Curt Arnold
- *
- */
-public final class SubsystemEnum extends EnumeratedAttribute {
- private final static String[] values = new String[]{"gui", "console",
- "other"};
- public SubsystemEnum() {
- setValue("gui");
- }
- public String[] getValues() {
- return (String[]) values.clone();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java deleted file mode 100644 index 8e46cb7c6c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetDef.java +++ /dev/null @@ -1,228 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import org.apache.tools.ant.types.DataType;
-import org.apache.tools.ant.types.Reference;
-
-/**
- * Information on the execution platforms for the generated code.
- * (Non-functional prototype)
- *
- */
-public final class TargetDef
- extends DataType {
- /**
- * if property.
- */
- private String ifCond;
-
- /**
- * unless property.
- */
- private String unlessCond;
-
- /**
- * cpu.
- *
- */
- private CPUEnum cpu;
-
- /**
- * architecture.
- *
- */
- private ArchEnum arch;
-
- /**
- * OS Family.
- *
- */
- private OSFamilyEnum osFamily;
-
- /**
- * Constructor.
- *
- */
- public TargetDef() {
- }
-
- /**
- * Bogus method required for documentation generation.
- */
- public void execute() {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- * @return true if active
- */
- public boolean isActive() {
- return CUtil.isActive(getProject(), ifCond, unlessCond);
- }
-
- /**
- * Sets a description of the current data type.
- * @param desc description
- */
- public void setDescription(final String desc) {
- super.setDescription(desc);
- }
-
- /**
- * Sets an id that can be used to reference this element.
- *
- * @param id
- * id
- */
- public void setId(final String id) {
- //
- // this is actually accomplished by a different
- // mechanism, but we can document it
- //
- }
-
- /**
- * Sets the property name for the 'if' condition.
- *
- * The define will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public void setIf(final String propName) {
- ifCond = propName;
- }
-
- /**
- * Specifies that this element should behave as if the content of the
- * element with the matching id attribute was inserted at this location. If
- * specified, no other attributes should be specified.
- * @param r id of referenced target
- */
- public void setRefid(final Reference r) {
- super.setRefid(r);
- }
-
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the define will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(final String propName) {
- unlessCond = propName;
- }
-
- /**
- * Gets cpu.
- * @return cpu, may be null.
- *
- */
- public CPUEnum getCpu() {
- if (isReference()) {
- TargetDef refPlatform = (TargetDef)
- getCheckedRef(TargetDef.class,
- "TargetDef");
- return refPlatform.getCpu();
- }
- return cpu;
- }
-
- /**
- * Gets arch.
- * @return arch, may be null.
- *
- */
- public ArchEnum getArch() {
- if (isReference()) {
- TargetDef refPlatform = (TargetDef)
- getCheckedRef(TargetDef.class,
- "TargetDef");
- return refPlatform.getArch();
- }
- return arch;
- }
-
- /**
- * Gets operating system family.
- * @return os family, may be null.
- *
- */
- public OSFamilyEnum getOsfamily() {
- if (isReference()) {
- TargetDef refPlatform = (TargetDef)
- getCheckedRef(TargetDef.class,
- "TargetDef");
- return refPlatform.getOsfamily();
- }
- return osFamily;
- }
-
- /**
- * Sets preferred cpu, but does not use cpu specific instructions.
- * @param value new value
- */
- public void setCpu(final CPUEnum value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- cpu = value;
- }
-
- /**
- * Sets cpu architecture, compiler may use cpu specific instructions.
- * @param value new value
- */
- public void setArch(final ArchEnum value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- if (cpu != null) {
- throw tooManyAttributes();
- }
- arch = value;
- }
-
- /**
- * Sets operating system family.
- * @param value new value
- */
- public void setOsfamily(final OSFamilyEnum value) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- if (cpu != null) {
- throw tooManyAttributes();
- }
- osFamily = value;
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java deleted file mode 100644 index 0094c8ecec..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistory.java +++ /dev/null @@ -1,58 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-/**
- * A description of a file built or to be built
- */
-public final class TargetHistory {
- private/* final */String config;
- private/* final */String output;
- private/* final */long outputLastModified;
- private/* final */SourceHistory[] sources;
- /**
- * Constructor from build step
- */
- public TargetHistory(String config, String output, long outputLastModified,
- SourceHistory[] sources) {
- if (config == null) {
- throw new NullPointerException("config");
- }
- if (sources == null) {
- throw new NullPointerException("source");
- }
- if (output == null) {
- throw new NullPointerException("output");
- }
- this.config = config;
- this.output = output;
- this.outputLastModified = outputLastModified;
- this.sources = (SourceHistory[]) sources.clone();
- }
- public String getOutput() {
- return output;
- }
- public long getOutputLastModified() {
- return outputLastModified;
- }
- public String getProcessorConfiguration() {
- return config;
- }
- public SourceHistory[] getSources() {
- SourceHistory[] clone = (SourceHistory[]) sources.clone();
- return clone;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java deleted file mode 100644 index 9fb0a7b642..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetHistoryTable.java +++ /dev/null @@ -1,426 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-
-import org.apache.tools.ant.BuildException;
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-/**
- * A history of the compiler and linker settings used to build the files in the
- * same directory as the history.
- *
- * @author Curt Arnold
- */
-public final class TargetHistoryTable {
- /**
- * This class handles populates the TargetHistory hashtable in response to
- * SAX parse events
- */
- private class TargetHistoryTableHandler extends DefaultHandler {
- private final File baseDir;
- private String config;
- private final Hashtable history;
- private String output;
- private long outputLastModified;
- private final Vector sources = new Vector();
- /**
- * Constructor
- *
- * @param history
- * hashtable of TargetHistory keyed by output name
- * @param outputFiles
- * existing files in output directory
- */
- private TargetHistoryTableHandler(Hashtable history, File baseDir) {
- this.history = history;
- config = null;
- output = null;
- this.baseDir = baseDir;
- }
- public void endElement(String namespaceURI, String localName,
- String qName) throws SAXException {
- //
- // if </target> then
- // create TargetHistory object and add to hashtable
- // if corresponding output file exists and
- // has the same timestamp
- //
- if (qName.equals("target")) {
- if (config != null && output != null) {
- File existingFile = new File(baseDir, output);
- //
- // if the corresponding files doesn't exist or has a
- // different
- // modification time, then discard this record
- if (existingFile.exists()) {
- long existingLastModified = existingFile.lastModified();
- //
- // would have expected exact time stamps
- // but have observed slight differences
- // in return value for multiple evaluations of
- // lastModified(). Check if times are within
- // a second
- long diff = outputLastModified - existingLastModified;
- if (diff >= -500 && diff <= 500) {
- SourceHistory[] sourcesArray = new SourceHistory[sources
- .size()];
- sources.copyInto(sourcesArray);
- TargetHistory targetHistory = new TargetHistory(
- config, output, outputLastModified,
- sourcesArray);
- history.put(output, targetHistory);
- }
- }
- }
- output = null;
- sources.setSize(0);
- } else {
- //
- // reset config so targets not within a processor element
- // don't pick up a previous processors signature
- //
- if (qName.equals("processor")) {
- config = null;
- }
- }
- }
- /**
- * startElement handler
- */
- public void startElement(String namespaceURI, String localName,
- String qName, Attributes atts) throws SAXException {
- //
- // if sourceElement
- //
- if (qName.equals("source")) {
- String sourceFile = atts.getValue("file");
- long sourceLastModified = Long.parseLong(atts
- .getValue("lastModified"), 16);
- sources.addElement(new SourceHistory(sourceFile,
- sourceLastModified));
- } else {
- //
- // if <target> element,
- // grab file name and lastModified values
- // TargetHistory object will be created in endElement
- //
- if (qName.equals("target")) {
- sources.setSize(0);
- output = atts.getValue("file");
- outputLastModified = Long.parseLong(atts
- .getValue("lastModified"), 16);
- } else {
- //
- // if <processor> element,
- // grab signature attribute
- //
- if (qName.equals("processor")) {
- config = atts.getValue("signature");
- }
- }
- }
- }
- }
- /** Flag indicating whether the cache should be written back to file. */
- private boolean dirty;
- /**
- * a hashtable of TargetHistory's keyed by output file name
- */
- private final Hashtable history = new Hashtable();
- /** The file the cache was loaded from. */
- private/* final */File historyFile;
- private/* final */File outputDir;
- private String outputDirPath;
- /**
- * Creates a target history table from history.xml in the output directory,
- * if it exists. Otherwise, initializes the history table empty.
- *
- * @param task
- * task used for logging history load errors
- * @param outputDir
- * output directory for task
- */
- public TargetHistoryTable(CCTask task, File outputDir)
- throws BuildException {
- if (outputDir == null) {
- throw new NullPointerException("outputDir");
- }
- if (!outputDir.isDirectory()) {
- throw new BuildException("Output directory is not a directory");
- }
- if (!outputDir.exists()) {
- throw new BuildException("Output directory does not exist");
- }
- this.outputDir = outputDir;
- try {
- outputDirPath = outputDir.getCanonicalPath();
- } catch (IOException ex) {
- outputDirPath = outputDir.toString();
- }
- //
- // load any existing history from file
- // suppressing any records whose corresponding
- // file does not exist, is zero-length or
- // last modified dates differ
- historyFile = new File(outputDir, "history.xml");
- if (historyFile.exists()) {
- SAXParserFactory factory = SAXParserFactory.newInstance();
- factory.setValidating(false);
- try {
- SAXParser parser = factory.newSAXParser();
- parser.parse(historyFile, new TargetHistoryTableHandler(
- history, outputDir));
- } catch (Exception ex) {
- //
- // a failure on loading this history is not critical
- // but should be logged
- task.log("Error reading history.xml: " + ex.toString());
- }
- } else {
- //
- // create empty history file for identifying new files by last
- // modified
- // timestamp comperation (to compare with
- // System.currentTimeMillis() don't work on Unix, because it
- // maesure timestamps only in seconds).
- //
- try {
- FileOutputStream outputStream = new FileOutputStream(
- historyFile);
- byte[] historyElement = new byte[]{0x3C, 0x68, 0x69, 0x73,
- 0x74, 0x6F, 0x72, 0x79, 0x2F, 0x3E};
- outputStream.write(historyElement);
- outputStream.close();
- } catch (IOException ex) {
- throw new BuildException("Can't create history file", ex);
- }
- }
- }
- public void commit() throws IOException {
- //
- // if not dirty, no need to update file
- //
- if (dirty) {
- //
- // build (small) hashtable of config id's in history
- //
- Hashtable configs = new Hashtable(20);
- Enumeration elements = history.elements();
- while (elements.hasMoreElements()) {
- TargetHistory targetHistory = (TargetHistory) elements
- .nextElement();
- String configId = targetHistory.getProcessorConfiguration();
- if (configs.get(configId) == null) {
- configs.put(configId, configId);
- }
- }
- FileOutputStream outStream = new FileOutputStream(historyFile);
- OutputStreamWriter outWriter;
- //
- // early VM's don't support UTF-8 encoding
- // try and fallback to the default encoding
- // otherwise
- String encodingName = "UTF-8";
- try {
- outWriter = new OutputStreamWriter(outStream, "UTF-8");
- } catch (UnsupportedEncodingException ex) {
- outWriter = new OutputStreamWriter(outStream);
- encodingName = outWriter.getEncoding();
- }
- BufferedWriter writer = new BufferedWriter(outWriter);
- writer.write("<?xml version='1.0' encoding='");
- writer.write(encodingName);
- writer.write("'?>\n");
- writer.write("<history>\n");
- StringBuffer buf = new StringBuffer(200);
- Enumeration configEnum = configs.elements();
- while (configEnum.hasMoreElements()) {
- String configId = (String) configEnum.nextElement();
- buf.setLength(0);
- buf.append(" <processor signature=\"");
- buf.append(CUtil.xmlAttribEncode(configId));
- buf.append("\">\n");
- writer.write(buf.toString());
- elements = history.elements();
- while (elements.hasMoreElements()) {
- TargetHistory targetHistory = (TargetHistory) elements
- .nextElement();
- if (targetHistory.getProcessorConfiguration().equals(
- configId)) {
- buf.setLength(0);
- buf.append(" <target file=\"");
- buf.append(CUtil.xmlAttribEncode(targetHistory
- .getOutput()));
- buf.append("\" lastModified=\"");
- buf.append(Long.toHexString(targetHistory
- .getOutputLastModified()));
- buf.append("\">\n");
- writer.write(buf.toString());
- SourceHistory[] sourceHistories = targetHistory
- .getSources();
- for (int i = 0; i < sourceHistories.length; i++) {
- buf.setLength(0);
- buf.append(" <source file=\"");
- buf.append(CUtil.xmlAttribEncode(sourceHistories[i]
- .getRelativePath()));
- buf.append("\" lastModified=\"");
- buf.append(Long.toHexString(sourceHistories[i]
- .getLastModified()));
- buf.append("\"/>\n");
- writer.write(buf.toString());
- }
- writer.write(" </target>\n");
- }
- }
- writer.write(" </processor>\n");
- }
- writer.write("</history>\n");
- writer.close();
- dirty = false;
- }
- }
- public TargetHistory get(String configId, String outputName) {
- TargetHistory targetHistory = (TargetHistory) history.get(outputName);
- if (targetHistory != null) {
- if (!targetHistory.getProcessorConfiguration().equals(configId)) {
- targetHistory = null;
- }
- }
- return targetHistory;
- }
- public void markForRebuild(Hashtable targetInfos) {
- Enumeration targetInfoEnum = targetInfos.elements();
- while (targetInfoEnum.hasMoreElements()) {
- markForRebuild((TargetInfo) targetInfoEnum.nextElement());
- }
- }
- public void markForRebuild(TargetInfo targetInfo) {
- //
- // if it must already be rebuilt, no need to check further
- //
- if (!targetInfo.getRebuild()) {
- TargetHistory history = get(targetInfo.getConfiguration()
- .toString(), targetInfo.getOutput().getName());
- if (history == null) {
- targetInfo.mustRebuild();
- } else {
- SourceHistory[] sourceHistories = history.getSources();
- File[] sources = targetInfo.getSources();
- if (sourceHistories.length != sources.length) {
- targetInfo.mustRebuild();
- } else {
- for (int i = 0; i < sourceHistories.length
- && !targetInfo.getRebuild(); i++) {
- //
- // relative file name, must absolutize it on output
- // directory
- //
- boolean foundMatch = false;
- String historySourcePath = sourceHistories[i]
- .getAbsolutePath(outputDir);
- for (int j = 0; j < sources.length; j++) {
- File targetSource = sources[j];
- String targetSourcePath = targetSource
- .getAbsolutePath();
- if (targetSourcePath.equals(historySourcePath)) {
- foundMatch = true;
- if (targetSource.lastModified() != sourceHistories[i]
- .getLastModified()) {
- targetInfo.mustRebuild();
- break;
- }
- }
- }
- if (!foundMatch) {
- targetInfo.mustRebuild();
- }
- }
- }
- }
- }
- }
- public void update(ProcessorConfiguration config, String[] sources) {
- String configId = config.getIdentifier();
- String[] onesource = new String[1];
- String outputName;
- for (int i = 0; i < sources.length; i++) {
- onesource[0] = sources[i];
- outputName = config.getOutputFileName(sources[i]);
- update(configId, outputName, onesource);
- }
- }
- private void update(String configId, String outputName, String[] sources) {
- File outputFile = new File(outputDir, outputName);
- //
- // if output file doesn't exist or predates the start of the
- // compile step (most likely a compilation error) then
- // do not write add a history entry
- //
- if (outputFile.exists()
- && outputFile.lastModified() >= historyFile.lastModified()) {
- dirty = true;
- history.remove(outputName);
- SourceHistory[] sourceHistories = new SourceHistory[sources.length];
- for (int i = 0; i < sources.length; i++) {
- File sourceFile = new File(sources[i]);
- long lastModified = sourceFile.lastModified();
- String relativePath = CUtil.getRelativePath(outputDirPath,
- sourceFile);
- sourceHistories[i] = new SourceHistory(relativePath,
- lastModified);
- }
- TargetHistory newHistory = new TargetHistory(configId, outputName,
- outputFile.lastModified(), sourceHistories);
- history.put(outputName, newHistory);
- }
- }
- public void update(TargetInfo linkTarget) {
- File outputFile = linkTarget.getOutput();
- String outputName = outputFile.getName();
- //
- // if output file doesn't exist or predates the start of the
- // compile or link step (most likely a compilation error) then
- // do not write add a history entry
- //
- if (outputFile.exists()
- && outputFile.lastModified() >= historyFile.lastModified()) {
- dirty = true;
- history.remove(outputName);
- SourceHistory[] sourceHistories = linkTarget
- .getSourceHistories(outputDirPath);
- TargetHistory newHistory = new TargetHistory(linkTarget
- .getConfiguration().getIdentifier(), outputName, outputFile
- .lastModified(), sourceHistories);
- history.put(outputName, newHistory);
- }
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java deleted file mode 100644 index 3a9dd14b16..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetInfo.java +++ /dev/null @@ -1,127 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-/**
- * A description of a file built or to be built
- */
-public final class TargetInfo {
- private static final File[] emptyFileArray = new File[0];
- private/* final */ProcessorConfiguration config;
- private/* final */File output;
- private boolean rebuild;
- private/* final */File[] sources;
- private File[] sysSources;
- public TargetInfo(ProcessorConfiguration config, File[] sources,
- File[] sysSources, File output, boolean rebuild) {
- if (config == null) {
- throw new NullPointerException("config");
- }
- if (sources == null) {
- throw new NullPointerException("sources");
- }
- if (output == null) {
- throw new NullPointerException("output");
- }
- this.config = config;
- this.sources = (File[]) sources.clone();
- if (sysSources == null) {
- this.sysSources = emptyFileArray;
- } else {
- this.sysSources = (File[]) sysSources.clone();
- }
- this.output = output;
- this.rebuild = rebuild;
- //
- // if the output doesn't exist, must rebuild it
- //
- if (!output.exists()) {
- rebuild = true;
- }
- }
- public String[] getAllSourcePaths() {
- String[] paths = new String[sysSources.length + sources.length];
- for (int i = 0; i < sysSources.length; i++) {
- paths[i] = sysSources[i].toString();
- }
- int offset = sysSources.length;
- for (int i = 0; i < sources.length; i++) {
- paths[offset + i] = sources[i].toString();
- }
- return paths;
- }
- public File[] getAllSources() {
- File[] allSources = new File[sources.length + sysSources.length];
- for (int i = 0; i < sysSources.length; i++) {
- allSources[i] = sysSources[i];
- }
- int offset = sysSources.length;
- for (int i = 0; i < sources.length; i++) {
- allSources[i + offset] = sources[i];
- }
- return allSources;
- }
- public ProcessorConfiguration getConfiguration() {
- return config;
- }
- public File getOutput() {
- return output;
- }
- public boolean getRebuild() {
- return rebuild;
- }
- /**
- * Returns an array of SourceHistory objects (contains relative path and
- * last modified time) for the source[s] of this target
- */
- public SourceHistory[] getSourceHistories(String basePath) {
- SourceHistory[] histories = new SourceHistory[sources.length];
- for (int i = 0; i < sources.length; i++) {
- String relativeName = CUtil.getRelativePath(basePath, sources[i]);
- long lastModified = sources[i].lastModified();
- histories[i] = new SourceHistory(relativeName, lastModified);
- }
- return histories;
- }
- public String[] getSourcePaths() {
- String[] paths = new String[sources.length];
- for (int i = 0; i < sources.length; i++) {
- paths[i] = sources[i].toString();
- }
- return paths;
- }
- public File[] getSources() {
- File[] clone = (File[]) sources.clone();
- return clone;
- }
- public String[] getSysSourcePaths() {
- String[] paths = new String[sysSources.length];
- for (int i = 0; i < sysSources.length; i++) {
- paths[i] = sysSources[i].toString();
- }
- return paths;
- }
- public File[] getSysSources() {
- File[] clone = (File[]) sysSources.clone();
- return clone;
- }
- public void mustRebuild() {
- this.rebuild = true;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java deleted file mode 100644 index 2574e1561f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/TargetMatcher.java +++ /dev/null @@ -1,117 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-import java.io.File;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.LinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
-
-import org.apache.tools.ant.BuildException;
-/**
- * This class matches each visited file with an appropriate compiler
- *
- * @author Curt Arnold
- */
-public final class TargetMatcher implements FileVisitor {
- private LinkerConfiguration linker;
- private Vector objectFiles;
- private File outputDir;
- private ProcessorConfiguration[] processors;
- private final File sourceFiles[] = new File[1];
- private Hashtable targets;
- private CCTask task;
- public TargetMatcher(CCTask task, File outputDir,
- ProcessorConfiguration[] processors, LinkerConfiguration linker,
- Vector objectFiles, Hashtable targets) {
- this.task = task;
- this.outputDir = outputDir;
- this.processors = processors;
- this.targets = targets;
- this.linker = linker;
- this.objectFiles = objectFiles;
- }
- public void visit(File parentDir, String filename) throws BuildException {
- //
- // see if any processor wants to bid
- // on this one
- ProcessorConfiguration selectedCompiler = null;
- int bid = 0;
- if (processors != null) {
- for (int k = 0; k < processors.length; k++) {
- int newBid = processors[k].bid(filename);
- if (newBid > bid) {
- bid = newBid;
- selectedCompiler = processors[k];
- }
- }
- }
- //
- // no processor interested in file
- // log diagnostic message
- if (bid <= 0) {
- if (linker != null) {
- int linkerbid = linker.bid(filename);
- if (linkerbid > 0) {
- File objFile = new File(parentDir, filename);
- objectFiles.addElement(objFile);
- if (linkerbid == 1) {
- task.log("Unrecognized file type " + objFile.toString()
- + " will be passed to linker");
- }
- }
- }
- } else {
- //
- // get output file name
- //
- String outputFileName = selectedCompiler
- .getOutputFileName(filename);
- //
- // if there is some output for this task
- // (that is a source file and not an header file)
- //
- if (outputFileName != null) {
- sourceFiles[0] = new File(parentDir, filename);
- //
- // see if the same output file has already been registered
- //
- TargetInfo previousTarget = (TargetInfo) targets
- .get(outputFileName);
- if (previousTarget == null) {
- targets.put(outputFileName, new TargetInfo(
- selectedCompiler, sourceFiles, null, new File(
- outputDir, outputFileName),
- selectedCompiler.getRebuild()));
- } else {
- if (!previousTarget.getSources()[0].equals(sourceFiles[0])) {
- StringBuffer builder = new StringBuffer(
- "Output filename conflict: ");
- builder.append(outputFileName);
- builder.append(" would be produced from ");
- builder.append(previousTarget.getSources()[0]
- .toString());
- builder.append(" and ");
- builder.append(filename);
- throw new BuildException(builder.toString());
- }
- }
- }
- }
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java deleted file mode 100644 index f55b976fef..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/VersionInfo.java +++ /dev/null @@ -1,550 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks;
-
-import java.io.IOException;
-import java.io.Writer;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.DataType;
-import org.apache.tools.ant.types.Reference;
-
-/**
- * Version Information. (Non-functional prototype)
- *
- */
-public class VersionInfo extends DataType {
- /**
- * if property.
- */
- private String ifCond;
- /**
- * unless property.
- */
- private String unlessCond;
-
- /**
- * extends property.
- */
- private String extendsId;
-
- /**
- * file version.
- *
- */
- private String fileVersion;
- /**
- * Product version.
- *
- */
- private String productVersion;
- /**
- * file language.
- *
- */
- private String language;
-
- /**
- * comments.
- *
- */
- private String fileComments;
- /**
- * Company name.
- *
- */
- private String companyName;
- /**
- * Description.
- *
- */
- private String description;
- /**
- * internal name.
- */
- private String internalName;
- /**
- * legal copyright.
- *
- */
- private String legalCopyright;
- /**
- * legal trademark.
- *
- */
- private String legalTrademark;
- /**
- * original filename.
- *
- */
- private String originalFilename;
- /**
- * private build.
- *
- */
- private String privateBuild;
- /**
- * product name.
- *
- */
- private String productName;
- /**
- * Special build
- */
- private String specialBuild;
- /**
- * compatibility version
- *
- */
- private String compatibilityVersion;
-
-
- /**
- * Constructor.
- *
- */
- public VersionInfo() {
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- *
- * @exception BuildException
- * throws build exception if name is not set
- */
- public final boolean isActive() throws BuildException {
- return CUtil.isActive(getProject(), ifCond, unlessCond);
- }
- /**
- * Sets an id that can be used to reference this element.
- *
- * @param id
- * id
- */
- public void setId(String id) {
- //
- // this is actually accomplished by a different
- // mechanism, but we can document it
- //
- }
- /**
- * Sets the name of a version info that this info extends.
- *
- * @param id
- * id
- */
- public void setExtends(String id) {
- extendsId = id;
- }
-
-
- /**
- * Sets the property name for the 'if' condition.
- *
- * The define will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public final void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Specifies that this element should behave as if the content of the
- * element with the matching id attribute was inserted at this location. If
- * specified, no other attributes should be specified.
- *
- */
- public void setRefid(Reference r) throws BuildException {
- super.setRefid(r);
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the define will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public final void setUnless(String propName) {
- unlessCond = propName;
- }
- /**
- * Gets file version.
- * @return file version, may be null.
- *
- */
- public String getFileversion() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getFileversion();
- }
- return fileVersion;
- }
- /**
- * Gets Product version.
- * @return product version, may be null
- */
- public String getProductversion() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getProductversion();
- }
- return productVersion;
- }
- /**
- * Gets compatibility version.
- * @return compatibility version, may be null
- */
- public String getCompatibilityversion() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getCompatibilityversion();
- }
- return compatibilityVersion;
- }
- /**
- * Gets file language, should be an IETF RFC 3066 identifier, for example, en-US.
- * @return language, may be null.
- */
- public String getLanguage() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getLanguage();
- }
- return language;
- }
-
- /**
- * Gets comments.
- * @return comments, may be null.
- */
- public String getFilecomments() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getFilecomments();
- }
- return fileComments;
- }
- /**
- * Gets Company name.
- * @return company name, may be null.
- */
- public String getCompanyname() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getCompanyname();
- }
- return companyName;
- }
- /**
- * Gets Description.
- * @return description, may be null.
- */
- public String getDescription() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getDescription();
- }
- return description;
- }
- /**
- * Gets internal name.
- * @return internal name, may be null.
- */
- public String getInternalname() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getInternalname();
- }
- return internalName;
- }
- /**
- * Gets legal copyright.
- * @return legal copyright, may be null.
- */
- public String getLegalcopyright() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getLegalcopyright();
- }
- return legalCopyright;
- }
- /**
- * Gets legal trademark.
- * @return legal trademark, may be null;
- */
- public String getLegaltrademark() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getLegaltrademark();
- }
- return legalTrademark;
- }
- /**
- * Gets original filename.
- * @return original filename, may be null.
- */
- public String getOriginalfilename() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getOriginalfilename();
- }
- return originalFilename;
- }
- /**
- * Gets private build.
- * @return private build, may be null.
- */
- public String getPrivatebuild() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getPrivatebuild();
- }
- return privateBuild;
- }
- /**
- * Gets product name.
- * @return product name, may be null.
- */
- public String getProductname() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getProductname();
- }
- return productName;
- }
- /**
- * Special build
- * @return special build, may be null.
- */
- public String getSpecialbuild() {
- if (isReference()) {
- VersionInfo refVersion = (VersionInfo)
- getCheckedRef(VersionInfo.class,
- "VersionInfo");
- return refVersion.getSpecialbuild();
- }
- return specialBuild;
- }
-
- /**
- * Sets file version.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setFileversion(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- fileVersion = value;
- }
- /**
- * Sets product version.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setProductversion(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- productVersion = value;
- }
- /**
- * Sets compatibility version.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setCompatibilityversion(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- compatibilityVersion = value;
- }
- /**
- * Sets language.
- * @param value new value, should be an IETF RFC 3066 language identifier.
- * @throws BuildException if specified with refid
- */
- public void setLanguage(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- language = value;
- }
- /**
- * Sets comments.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setFilecomments(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- fileComments = value;
- }
-
- /**
- * Sets company name.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setCompanyname(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- companyName = value;
- }
-
-
- /**
- * Sets internal name. Internal name will automatically be
- * specified from build step, only set this value if
- * intentionally overriding that value.
- *
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setInternalname(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- internalName = value;
- }
-
- /**
- * Sets legal copyright.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setLegalcopyright(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- legalCopyright = value;
- }
- /**
- * Sets legal trademark.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setLegaltrademark(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- legalTrademark = value;
- }
- /**
- * Sets original name. Only set this value if
- * intentionally overriding the value from the build set.
- *
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setOriginalfilename(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- originalFilename = value;
- }
- /**
- * Sets private build.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setPrivatebuild(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- privateBuild = value;
- }
- /**
- * Sets product name.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setProductname(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- productName= value;
- }
- /**
- * Sets private build.
- * @param value new value
- * @throws BuildException if specified with refid
- */
- public void setSpecialbuild(String value) throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- specialBuild = value;
- }
-
- /**
- * Writes windows resource
- * @param writer writer, may not be null.
- * @param project project, may not be null
- * @param executableName name of executable
- */
- public void writeResource(final Writer writer,
- final Project p,
- final String executableName) throws IOException {
- // TODO:
-
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java deleted file mode 100644 index 78489b8c31..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java +++ /dev/null @@ -1,215 +0,0 @@ -/*
- *
- * Copyright 2003-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.arm;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the ARM C Compilers
- *
- * See Doc No: ARM DUI 0151A, Issued: Nov 2001 at
- * http://www.arm.com/arm/User_Guides?OpenDocument
- *
- * @author Curt Arnold
- *
- */
-public class ADSCCompiler extends CommandLineCCompiler {
- /**
- * Header file extensions
- */
- private static final String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- /**
- * Source file extensions
- */
- private static final String[] sourceExtensions = new String[]{".c", ".cc",
- ".cpp", ".cxx", ".c++"};
- /**
- * Singleton for ARM 32-bit C compiler
- */
- private static final ADSCCompiler armcc = new ADSCCompiler("armcc", false,
- null);
- /**
- * Singleton for ARM 32-bit C++ compiler
- */
- private static final ADSCCompiler armcpp = new ADSCCompiler("armcpp",
- false, null);
- /**
- * Singleton for ARM 16-bit C compiler
- */
- private static final ADSCCompiler tcc = new ADSCCompiler("tcc", false, null);
- /**
- * Singleton for ARM 16-bit C++ compiler
- */
- private static final ADSCCompiler tcpp = new ADSCCompiler("tcpp", false,
- null);
- /**
- * Singleton for ARM 32-bit C compiler
- */
- public static ADSCCompiler getArmCC() {
- return armcc;
- }
- /**
- * Singleton for ARM 32-bit C++ compiler
- */
- public static ADSCCompiler getArmCpp() {
- return armcpp;
- }
- /**
- * Singleton for ARM 16-bit C compiler
- */
- public static ADSCCompiler getThumbCC() {
- return tcpp;
- }
- /**
- * Singleton for ARM 16-bit C++ compiler
- */
- public static ADSCCompiler getThumbCpp() {
- return tcpp;
- }
- private static void quoteFile(StringBuffer buf, String outPath) {
- if (outPath.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(outPath);
- buf.append('\"');
- } else {
- buf.append(outPath);
- }
- }
- /**
- * Private constructor
- *
- * @param command
- * executable name
- * @param newEnvironment
- * Change environment
- * @param env
- * New environment
- */
- private ADSCCompiler(String command, boolean newEnvironment, Environment env) {
- super(command, "-vsn", sourceExtensions, headerExtensions, ".o", false,
- null, newEnvironment, env);
- }
- /**
- * Adds command switches for generic configuration options
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addImpliedArgs(java.util.Vector,
- * boolean, boolean, boolean,
- * net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- protected void addImpliedArgs(Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- if (debug) {
- args.addElement("-g");
- }
- //
- // didn't see anything about producing
- // anything other than executables in the docs
- if (linkType.isExecutable()) {
- } else if (linkType.isSharedLibrary()) {
- }
- }
- /**
- * Adds flags that customize the warnings reported
- *
- * Compiler does not appear to have warning levels but ability to turn off
- * specific errors by explicit switches, could fabricate levels by
- * prioritizing errors.
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addWarningSwitch(java.util.Vector,
- * int)
- */
- protected void addWarningSwitch(Vector args, int warnings) {
- }
- /**
- * Add command line options for preprocessor macro
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getDefineSwitch(java.lang.StringBuffer,
- * java.lang.String, java.lang.String)
- */
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- buffer.append("-D");
- buffer.append(define);
- if (value != null) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- /**
- * ARMINC environment variable contains the default include path
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getEnvironmentIncludePath()
- */
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("ARMINC", ";");
- }
- /**
- * Returns command line option to specify include directory
- *
- */
- protected String getIncludeDirSwitch(String source) {
- StringBuffer buf = new StringBuffer("-I");
- quoteFile(buf, source);
- return buf.toString();
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return ADSLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return ADSLinker.getDllInstance();
- }
- return ADSLinker.getInstance();
- }
- /**
- * Maximum command line length
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getMaximumCommandLength()
- */
- public int getMaximumCommandLength() {
- return 1000;
- }
- /*
- * Adds command to undefine preprocessor macro
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getUndefineSwitch(java.lang.StringBuffer,
- * java.lang.String)
- */
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- buffer.append("-U");
- buffer.append(define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java deleted file mode 100644 index 0ff53d309f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLibrarian.java +++ /dev/null @@ -1,160 +0,0 @@ -/*
- *
- * Copyright 2003-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.arm;
-
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for ARM Librarian
- *
- * @author Curt Arnold
- */
-public class ADSLibrarian extends CommandLineLinker {
-
- private static final ADSLibrarian instance = new ADSLibrarian();
-
- public static ADSLibrarian getInstance() {
- return instance;
- }
-
- private ADSLibrarian()
- {
- super("armar",null,
- new String[] { ".o" }, new String[0], ".lib", false, null);
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long, java.util.Vector)
- */
- protected void addBase(long base, Vector args) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean, java.util.Vector)
- */
- protected void addFixed(Boolean fixed, Vector args) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean, net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector)
- */
- protected void addImpliedArgs(
- boolean debug,
- LinkType linkType,
- Vector args,
- Boolean defaultflag) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean, java.util.Vector)
- */
- protected void addIncremental(boolean incremental, Vector args) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean, java.util.Vector)
- */
- protected void addMap(boolean map, Vector args) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int, java.util.Vector)
- */
- protected void addStack(int stack, Vector args) {
- // TODO Auto-generated method stub
-
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String)
- */
- protected String getCommandFileSwitch(String commandFile) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath()
- */
- public File[] getLibraryPath() {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[])
- */
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return new String[0];
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- public Linker getLinker(LinkType linkType) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength()
- */
- protected int getMaximumCommandLength() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String)
- */
- protected String[] getOutputFileSwitch(String outputFile) {
- // TODO Auto-generated method stub
- return null;
- }
-
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive()
- */
- public boolean isCaseSensitive() {
- // TODO Auto-generated method stub
- return false;
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java deleted file mode 100644 index 042eb217ec..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/arm/ADSLinker.java +++ /dev/null @@ -1,166 +0,0 @@ -/*
- *
- * Copyright 2003-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.arm;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for the ARM Linker
- *
- * @author CurtA
- */
-public class ADSLinker extends CommandLineLinker {
- private static final ADSLinker dllInstance = new ADSLinker(".o");
- private static final ADSLinker instance = new ADSLinker(".axf");
- public static ADSLinker getDllInstance() {
- return dllInstance;
- }
- public static ADSLinker getInstance() {
- return instance;
- }
- private ADSLinker(String outputSuffix) {
- super("armlink", "-vsn", new String[]{".o", ".lib", ".res"},
- new String[]{".map", ".pdb", ".lnk"}, outputSuffix, false, null);
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long,
- * java.util.Vector)
- */
- protected void addBase(long base, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean,
- * java.util.Vector)
- */
- protected void addFixed(Boolean fixed, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean,
- * net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector)
- */
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if (debug) {
- args.addElement("-debug");
- }
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean,
- * java.util.Vector)
- */
- protected void addIncremental(boolean incremental, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean,
- * java.util.Vector)
- */
- protected void addMap(boolean map, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int,
- * java.util.Vector)
- */
- protected void addStack(int stack, Vector args) {
- // TODO Auto-generated method stub
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- // TODO Auto-generated method stub
-
- }
-
- /**
- * May have to make this String array return
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String)
- */
- protected String getCommandFileSwitch(String commandFile) {
- return "-via" + commandFile;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath()
- */
- public File[] getLibraryPath() {
- return CUtil.getPathFromEnvironment("ARMLIB", ";");
- }
- /*
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[])
- */
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- //
- // TODO: looks like bad extension
- //
- return new String[]{".o"};
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- public Linker getLinker(LinkType linkType) {
- return this;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength()
- */
- protected int getMaximumCommandLength() {
- return 1024;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String)
- */
- protected String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"-output", outputFile};
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive()
- */
- public boolean isCaseSensitive() {
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java deleted file mode 100644 index 3304c9a860..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCCompiler.java +++ /dev/null @@ -1,135 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.PrecompilingCommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Borland(r) C/C++ compiler.
- *
- * @author Curt Arnold
- */
-public class BorlandCCompiler extends PrecompilingCommandLineCCompiler {
- private static final String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- private static final String[] sourceExtensions = new String[]{".c", ".cc",
- ".cpp", ".cxx", ".c++"};
- private static final BorlandCCompiler instance = new BorlandCCompiler(
- false, null);
- public static BorlandCCompiler getInstance() {
- return instance;
- }
- private BorlandCCompiler(boolean newEnvironment, Environment env) {
- super("bcc32", "--version", sourceExtensions, headerExtensions, ".obj", false,
- null, newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- args.addElement("-c");
- //
- // turn off compiler autodependency since
- // we do it ourselves
- args.addElement("-X");
- if (exceptions) {
- args.addElement("-x");
- } else {
- args.addElement("-x-");
- }
- if (multithreaded) {
- args.addElement("-tWM");
- }
- if (debug) {
- args.addElement("-Od");
- args.addElement("-v");
- } else {
- if (optimization != null) {
- if (optimization.isSpeed()) {
- args.addElement("-O1");
- } else {
- if (optimization.isSpeed()) {
- args.addElement("-O2");
- } else {
- if (optimization.isNoOptimization()) {
- args.addElement("-Od");
- }
- }
- }
- }
- }
- if (rtti != null && !rtti.booleanValue()) {
- args.addElement("-RT-");
- }
- }
- protected void addWarningSwitch(Vector args, int level) {
- BorlandProcessor.addWarningSwitch(args, level);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new BorlandCCompiler(newEnvironment, env);
- }
- return this;
- }
- protected CompilerConfiguration createPrecompileGeneratingConfig(
- CommandLineCompilerConfiguration baseConfig, File prototype,
- String lastInclude) {
- String[] additionalArgs = new String[]{"-H=" + lastInclude, "-Hc"};
- return new CommandLineCompilerConfiguration(baseConfig, additionalArgs,
- null, true);
- }
- protected CompilerConfiguration createPrecompileUsingConfig(
- CommandLineCompilerConfiguration baseConfig, File prototype,
- String lastInclude, String[] exceptFiles) {
- String[] additionalArgs = new String[]{"-Hu"};
- return new CommandLineCompilerConfiguration(baseConfig, additionalArgs,
- exceptFiles, false);
- }
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- BorlandProcessor.getDefineSwitch(buffer, define, value);
- }
- protected File[] getEnvironmentIncludePath() {
- return BorlandProcessor.getEnvironmentPath("bcc32", 'I',
- new String[]{"..\\include"});
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return BorlandProcessor.getIncludeDirSwitch("-I", includeDir);
- }
- public Linker getLinker(LinkType type) {
- return BorlandLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- BorlandProcessor.getUndefineSwitch(buffer, define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java deleted file mode 100644 index 19daedd203..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandCfgParser.java +++ /dev/null @@ -1,70 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.parser.AbstractParser;
-import net.sf.antcontrib.cpptasks.parser.AbstractParserState;
-import net.sf.antcontrib.cpptasks.parser.LetterState;
-import net.sf.antcontrib.cpptasks.parser.WhitespaceOrLetterState;
-/**
- * A parser that paths from a borland cfg file
- *
- * @author Curt Arnold
- */
-public final class BorlandCfgParser extends AbstractParser {
- private AbstractParserState newLineState;
- private final Vector path = new Vector();
- /**
- *
- *
- */
- public BorlandCfgParser(char switchChar) {
- //
- // a quoted path (-I"some path")
- // doesn't end till a close quote and will be abandoned
- // if a new line is encountered first
- //
- AbstractParserState quote = new CfgFilenameState(this, new char[]{'"'});
- //
- // an unquoted path (-Ic:\borland\include)
- // ends at the first space or new line
- AbstractParserState unquote = new CfgFilenameState(this, new char[]{
- ' ', '\n', '\r'});
- AbstractParserState quoteBranch = new QuoteBranchState(this, quote,
- unquote);
- AbstractParserState toNextSwitch = new ConsumeToSpaceOrNewLine(this);
- AbstractParserState switchState = new LetterState(this, switchChar,
- quoteBranch, toNextSwitch);
- newLineState = new WhitespaceOrLetterState(this, '-', switchState);
- }
- public void addFilename(String include) {
- path.addElement(include);
- }
- public AbstractParserState getNewLineState() {
- return newLineState;
- }
- public String[] parsePath(Reader reader) throws IOException {
- path.setSize(0);
- super.parse(reader);
- String[] retval = new String[path.size()];
- path.copyInto(retval);
- return retval;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java deleted file mode 100644 index 5fb3eb0827..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java +++ /dev/null @@ -1,200 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import java.io.File;
-import java.io.IOException;
-import java.util.Vector;
-import org.apache.tools.ant.BuildException;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for the Borland(r) tlib Librarian
- *
- * @author Curt Arnold
- */
-public class BorlandLibrarian extends CommandLineLinker {
- private static final BorlandLibrarian instance = new BorlandLibrarian();
- public static BorlandLibrarian getInstance() {
- return instance;
- }
- private BorlandLibrarian() {
- super("tlib", "--version", new String[]{".obj"}, new String[0], ".lib", false,
- null);
- }
- protected void addBase(long base, Vector args) {
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- protected void addMap(boolean map, Vector args) {
- }
- protected void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- protected String getCommandFileSwitch(String cmdFile) {
- return BorlandProcessor.getCommandFileSwitch(cmdFile);
- }
- public File[] getLibraryPath() {
- return CUtil.getPathFromEnvironment("LIB", ";");
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return BorlandProcessor.getLibraryPatterns(libnames, libType);
- }
- public Linker getLinker(LinkType type) {
- return BorlandLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- public String[] getOutputFileSwitch(String outFile) {
- return BorlandProcessor.getOutputFileSwitch(outFile);
- }
- public boolean isCaseSensitive() {
- return BorlandProcessor.isCaseSensitive();
- }
- /**
- * 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.
- */
- public String getIdentifier() {
- return "TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation";
- }
-
- /**
- * Prepares argument list for exec command.
- *
- * @param outputFile
- * linker output file
- * @param sourceFiles
- * linker input files (.obj, .o, .res)
- * @param args
- * linker arguments
- * @return arguments for runTask
- */
- protected String[] prepareArguments(
- CCTask task,
- String outputDir,
- String outputName,
- String[] sourceFiles,
- CommandLineLinkerConfiguration config) {
- String[] preargs = config.getPreArguments();
- String[] endargs = config.getEndArguments();
- StringBuffer buf = new StringBuffer();
- Vector execArgs = new Vector(preargs.length + endargs.length + 10
- + sourceFiles.length);
-
- execArgs.addElement(this.getCommand());
- String outputFileName = new File(outputDir, outputName).toString();
- execArgs.addElement(quoteFilename(buf, outputFileName));
-
- for (int i = 0; i < preargs.length; i++) {
- execArgs.addElement(preargs[i]);
- }
-
- //
- // add a place-holder for page size
- //
- int pageSizeIndex = execArgs.size();
- execArgs.addElement(null);
-
- int objBytes = 0;
-
- for (int i = 0; i < sourceFiles.length; i++) {
- String last4 = sourceFiles[i]
- .substring(sourceFiles[i].length() - 4).toLowerCase();
- if (last4.equals(".def")) {
- } else {
- if (last4.equals(".res")) {
- } else {
- if (last4.equals(".lib")) {
- } else {
- execArgs.addElement("+" + quoteFilename(buf, sourceFiles[i]));
- objBytes += new File(sourceFiles[i]).length();
- }
- }
- }
- }
-
- for (int i = 0; i < endargs.length; i++) {
- execArgs.addElement(endargs[i]);
- }
-
- String[] execArguments = new String[execArgs.size()];
- execArgs.copyInto(execArguments);
-
- int minPageSize = objBytes >> 16;
- int pageSize = 0;
- for(int i = 4; i <= 15; i++) {
- pageSize = 1 << i;
- if (pageSize > minPageSize) break;
- }
- execArguments[pageSizeIndex] = "/P" + Integer.toString(pageSize);
-
- return execArguments;
- }
-
- /**
- * Prepares argument list to execute the linker using a response file.
- *
- * @param outputFile
- * linker output file
- * @param args
- * output of prepareArguments
- * @return arguments for runTask
- */
- protected String[] prepareResponseFile(File outputFile, String[] args)
- throws IOException {
- return BorlandProcessor.prepareResponseFile(outputFile, args, " & \n");
- }
-
- /**
- * Builds a library
- *
- */
- public void link(CCTask task,
- File outputFile,
- String[] sourceFiles,
- CommandLineLinkerConfiguration config)
- throws BuildException
- {
- //
- // delete any existing library
- outputFile.delete();
- //
- // build a new library
- super.link(task, outputFile, sourceFiles, config);
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java deleted file mode 100644 index f425c528bd..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java +++ /dev/null @@ -1,264 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for the Borland(r) ilink32 linker
- *
- * @author Curt Arnold
- */
-public final class BorlandLinker extends CommandLineLinker {
- private static final BorlandLinker dllLinker = new BorlandLinker(".dll");
- private static final BorlandLinker instance = new BorlandLinker(".exe");
- public static BorlandLinker getInstance() {
- return instance;
- }
- private BorlandLinker(String outputSuffix) {
- super("ilink32", "-r", new String[]{".obj", ".lib", ".res"},
- new String[]{".map", ".pdb", ".lnk"}, outputSuffix, false, null);
- }
- protected void addBase(long base, Vector args) {
- if (base >= 0) {
- String baseAddr = Long.toHexString(base);
- args.addElement("-b:" + baseAddr);
- }
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if (linkType.isExecutable()) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("/ap");
- } else {
- if (linkType.isSubsystemGUI()) {
- args.addElement("/Tpe");
- }
- }
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("/Tpd");
- args.addElement("/Gi");
- }
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- protected void addMap(boolean map, Vector args) {
- if (!map) {
- args.addElement("-x");
- }
- }
- protected void addStack(int stack, Vector args) {
- if (stack >= 0) {
- String stackStr = Integer.toHexString(stack);
- args.addElement("-S:" + stackStr);
- }
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- public String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- public String getIdentifier() {
- return "Borland Linker";
- }
- public File[] getLibraryPath() {
- return BorlandProcessor.getEnvironmentPath("ilink32", 'L',
- new String[]{"..\\lib"});
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return BorlandProcessor.getLibraryPatterns(libnames, libType);
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return BorlandLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- public String[] getOutputFileSwitch(String outFile) {
- return BorlandProcessor.getOutputFileSwitch(outFile);
- }
- protected String getStartupObject(LinkType linkType) {
- if (linkType.isSharedLibrary()) {
- return "c0d32.obj";
- }
- if (linkType.isSubsystemGUI()) {
- return "c0w32.obj";
- }
- if (linkType.isSubsystemConsole()) {
- return "c0x32.obj";
- }
- return null;
- }
- public boolean isCaseSensitive() {
- return BorlandProcessor.isCaseSensitive();
- }
- /**
- * Prepares argument list for exec command.
- *
- * @param outputFile
- * linker output file
- * @param sourceFiles
- * linker input files (.obj, .o, .res)
- * @param args
- * linker arguments
- * @return arguments for runTask
- */
- protected String[] prepareArguments(
- CCTask task,
- String outputDir,
- String outputName,
- String[] sourceFiles,
- CommandLineLinkerConfiguration config) {
- String[] preargs = config.getPreArguments();
- String[] endargs = config.getEndArguments();
- Vector execArgs = new Vector(preargs.length + endargs.length + 10
- + sourceFiles.length);
- execArgs.addElement(this.getCommand());
- for (int i = 0; i < preargs.length; i++) {
- execArgs.addElement(preargs[i]);
- }
- for (int i = 0; i < endargs.length; i++) {
- execArgs.addElement(endargs[i]);
- }
- //
- // see if the input files have any known startup obj files
- //
- String startup = null;
- for (int i = 0; i < sourceFiles.length; i++) {
- String filename = new File(sourceFiles[i]).getName().toLowerCase();
- if (startup != null && filename.substring(0, 2).equals("c0")
- && filename.substring(3, 5).equals("32")
- && filename.substring(filename.length() - 4).equals(".obj")) {
- startup = sourceFiles[i];
- }
- }
- //
- // c0w32.obj, c0x32.obj or c0d32.obj depending on
- // link type
- if (startup == null) {
- startup = config.getStartupObject();
- }
- execArgs.addElement(startup);
- Vector resFiles = new Vector();
- Vector libFiles = new Vector();
- String defFile = null;
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < sourceFiles.length; i++) {
- String last4 = sourceFiles[i]
- .substring(sourceFiles[i].length() - 4).toLowerCase();
- if (last4.equals(".def")) {
- defFile = quoteFilename(buf, sourceFiles[i]);
- } else {
- if (last4.equals(".res")) {
- resFiles.addElement(quoteFilename(buf, sourceFiles[i]));
- } else {
- if (last4.equals(".lib")) {
- libFiles.addElement(quoteFilename(buf, sourceFiles[i]));
- } else {
- execArgs.addElement(quoteFilename(buf, sourceFiles[i]));
- }
- }
- }
- }
- //
- // output file name
- //
- String outputFileName = new File(outputDir, outputName).toString();
- execArgs.addElement("," + quoteFilename(buf, outputFileName));
- if (config.getMap()) {
- int lastPeriod = outputFileName.lastIndexOf('.');
- String mapName;
- if (lastPeriod < outputFileName.length() - 4) {
- mapName = outputFileName + ".map";
- } else {
- mapName = outputFileName.substring(0, lastPeriod) + ".map";
- }
- execArgs.addElement("," + quoteFilename(buf, mapName) + ",");
- } else {
- execArgs.addElement(",,");
- }
- //
- // add all the libraries
- //
- Enumeration libEnum = libFiles.elements();
- boolean hasImport32 = false;
- boolean hasCw32 = false;
- while (libEnum.hasMoreElements()) {
- String libName = (String) libEnum.nextElement();
- if (libName.equalsIgnoreCase("import32.lib")) {
- hasImport32 = true;
- }
- if (libName.equalsIgnoreCase("cw32.lib")) {
- hasImport32 = true;
- }
- execArgs.addElement(quoteFilename(buf, libName));
- }
- if (!hasCw32) {
- execArgs.addElement(quoteFilename(buf, "cw32.lib"));
- }
- if (!hasImport32) {
- execArgs.addElement(quoteFilename(buf, "import32.lib"));
- }
- if (defFile == null) {
- execArgs.addElement(",,");
- } else {
- execArgs.addElement("," + quoteFilename(buf, defFile) + ",");
- }
- Enumeration resEnum = resFiles.elements();
- while (resEnum.hasMoreElements()) {
- String resName = (String) resEnum.nextElement();
- execArgs.addElement(quoteFilename(buf, resName));
- }
- String[] execArguments = new String[execArgs.size()];
- execArgs.copyInto(execArguments);
- return execArguments;
- }
- /**
- * Prepares argument list to execute the linker using a response file.
- *
- * @param outputFile
- * linker output file
- * @param args
- * output of prepareArguments
- * @return arguments for runTask
- */
- protected String[] prepareResponseFile(File outputFile, String[] args)
- throws IOException {
- return BorlandProcessor.prepareResponseFile(outputFile, args, " + \n");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java deleted file mode 100644 index d53f00cc12..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java +++ /dev/null @@ -1,219 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.Vector;
-import java.io.FileWriter;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-/**
- * A add-in class for Borland(r) processor adapters
- *
- *
- */
-public final class BorlandProcessor {
- public static void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("-w-");
- break;
- case 5 :
- args.addElement("-w!");
- break;
- default :
- args.addElement("-w");
- break;
- }
- }
- public static String getCommandFileSwitch(String cmdFile) {
- StringBuffer buf = new StringBuffer("@");
- quoteFile(buf, cmdFile);
- return buf.toString();
- }
- public static void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- buffer.append("-D");
- buffer.append(define);
- if (value != null && value.length() > 0) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- /**
- * This method extracts path information from the appropriate .cfg file in
- * the install directory.
- *
- * @param toolName
- * Tool name, for example, "bcc32", "brc32", "ilink32"
- * @param switchChar
- * Command line switch character, for example "L" for libraries
- * @param defaultRelativePaths
- * default paths relative to executable directory
- * @return path
- */
- public static File[] getEnvironmentPath(String toolName, char switchChar,
- String[] defaultRelativePath) {
- if (toolName == null) {
- throw new NullPointerException("toolName");
- }
- if (defaultRelativePath == null) {
- throw new NullPointerException("defaultRelativePath");
- }
- String[] path = defaultRelativePath;
- File exeDir = CUtil.getExecutableLocation(toolName + ".exe");
- if (exeDir != null) {
- File cfgFile = new File(exeDir, toolName + ".cfg");
- if (cfgFile.exists()) {
- try {
- Reader reader = new BufferedReader(new FileReader(cfgFile));
- BorlandCfgParser cfgParser = new BorlandCfgParser(
- switchChar);
- path = cfgParser.parsePath(reader);
- reader.close();
- } catch (IOException ex) {
- //
- // could be logged
- //
- }
- }
- } else {
- //
- // if can't find the executable,
- // assume current directory to resolve relative paths
- //
- exeDir = new File(System.getProperty("user.dir"));
- }
- int nonExistant = 0;
- File[] resourcePath = new File[path.length];
- for (int i = 0; i < path.length; i++) {
- resourcePath[i] = new File(path[i]);
- if (!resourcePath[i].isAbsolute()) {
- resourcePath[i] = new File(exeDir, path[i]);
- }
- //
- // if any of the entries do not exist or are
- // not directories, null them out
- if (!(resourcePath[i].exists() && resourcePath[i].isDirectory())) {
- resourcePath[i] = null;
- nonExistant++;
- }
- }
- //
- // if there were some non-existant or non-directory
- // entries in the configuration file then
- // create a shorter array
- if (nonExistant > 0) {
- File[] culled = new File[resourcePath.length - nonExistant];
- int index = 0;
- for (int i = 0; i < resourcePath.length; i++) {
- if (resourcePath[i] != null) {
- culled[index++] = resourcePath[i];
- }
- }
- resourcePath = culled;
- }
- return resourcePath;
- }
- public static String getIncludeDirSwitch(String includeOption,
- String includeDir) {
- StringBuffer buf = new StringBuffer(includeOption);
- quoteFile(buf, includeDir);
- return buf.toString();
- }
- public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- String[] patterns = new String[libnames.length];
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(libnames[i]);
- buf.append(".lib");
- patterns[i] = buf.toString();
- }
- return patterns;
- }
- public static String[] getOutputFileSwitch(String outFile) {
- return new String[0];
- }
- public static void getUndefineSwitch(StringBuffer buffer, String define) {
- buffer.append("-U");
- buffer.append(define);
- }
- public static boolean isCaseSensitive() {
- return false;
- }
- private static void quoteFile(StringBuffer buf, String outPath) {
- if (outPath.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(outPath);
- buf.append('\"');
- } else {
- buf.append(outPath);
- }
- }
-
- /**
- * Prepares argument list to execute the linker using a response file.
- *
- * @param outputFile
- * linker output file
- * @param args
- * output of prepareArguments
- * @return arguments for runTask
- */
- public static String[] prepareResponseFile(File outputFile,
- String[] args,
- String continuation)
- throws IOException {
- String baseName = outputFile.getName();
- File commandFile = new File(outputFile.getParent(), baseName + ".lnk");
- FileWriter writer = new FileWriter(commandFile);
- for (int i = 1; i < args.length - 1; i++) {
- writer.write(args[i]);
- //
- // if either the current argument ends with
- // or next argument starts with a comma then
- // don't split the line
- if (args[i].endsWith(",") || args[i + 1].startsWith(",")) {
- writer.write(' ');
- } else {
- //
- // split the line to make it more readable
- //
- writer.write(continuation);
- }
- }
- //
- // write the last argument
- //
- if (args.length > 1) {
- writer.write(args[args.length - 1]);
- }
- writer.close();
- String[] execArgs = new String[2];
- execArgs[0] = args[0];
- execArgs[1] = getCommandFileSwitch(commandFile.toString());
- return execArgs;
- }
-
- private BorlandProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java deleted file mode 100644 index 5e8609797e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/BorlandResourceCompiler.java +++ /dev/null @@ -1,130 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import java.io.File;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor;
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Borland(r) brc32 Resource compiler.
- *
- * @author Curt Arnold
- */
-public class BorlandResourceCompiler extends CommandLineCompiler {
- private static final BorlandResourceCompiler instance = new BorlandResourceCompiler(
- false, null);
- public static BorlandResourceCompiler getInstance() {
- return instance;
- }
- private BorlandResourceCompiler(boolean newEnvironment, Environment env) {
- super("brc32", "c:\\__bogus\\__bogus.rc", new String[]{".rc"},
- new String[]{".h", ".hpp", ".inl"}, ".res", false, null,
- newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- //
- // compile only
- //
- args.addElement("-r");
- }
- protected void addWarningSwitch(Vector args, int level) {
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new BorlandResourceCompiler(newEnvironment, env);
- }
- return this;
- }
- public void compile(CCTask task, File outputDir, String[] sourceFiles,
- String[] args, String[] endArgs, boolean relentless,
- CommandLineCompilerConfiguration config, ProgressMonitor monitor)
- throws BuildException {
- super.compile(task, outputDir, sourceFiles, args, endArgs, relentless,
- config, monitor);
- }
- /**
- * The include parser for C will work just fine, but we didn't want to
- * inherit from CommandLineCCompiler
- */
- protected Parser createParser(File source) {
- return new CParser();
- }
- protected int getArgumentCountPerInputFile() {
- return 2;
- }
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- buffer.append("-d");
- buffer.append(define);
- if (value != null && value.length() > 0) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- protected File[] getEnvironmentIncludePath() {
- return BorlandProcessor.getEnvironmentPath("brc32", 'i',
- new String[]{"..\\include"});
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return BorlandProcessor.getIncludeDirSwitch("-i", includeDir);
- }
- protected String getInputFileArgument(File outputDir, String filename,
- int index) {
- if (index == 0) {
- String outputFileName = getOutputFileName(filename);
- String fullOutputName = new File(outputDir, outputFileName)
- .toString();
- return "-fo" + fullOutputName;
- }
- return filename;
- }
- public Linker getLinker(LinkType type) {
- return BorlandLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- protected int getMaximumInputFilesPerCommand() {
- return 1;
- }
- protected int getTotalArgumentLengthForInputFile(File outputDir,
- String inputFile) {
- String arg1 = getInputFileArgument(outputDir, inputFile, 0);
- String arg2 = getInputFileArgument(outputDir, inputFile, 1);
- return arg1.length() + arg2.length() + 2;
- }
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java deleted file mode 100644 index a3651d3b25..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/CfgFilenameState.java +++ /dev/null @@ -1,46 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import net.sf.antcontrib.cpptasks.parser.AbstractParser;
-import net.sf.antcontrib.cpptasks.parser.AbstractParserState;
-import net.sf.antcontrib.cpptasks.parser.FilenameState;
-public class CfgFilenameState extends FilenameState {
- private char terminator;
- public CfgFilenameState(AbstractParser parser, char[] terminators) {
- super(parser, terminators);
- terminator = terminators[0];
- }
- public AbstractParserState consume(char ch) {
- //
- // if a ';' is encountered then
- // close the previous filename by sending a
- // recognized terminator to our super class
- // and stay in this state for more filenamese
- if (ch == ';') {
- super.consume(terminator);
- return this;
- }
- AbstractParserState newState = super.consume(ch);
- //
- // change null (consume to end of line)
- // to look for next switch character
- if (newState == null) {
- newState = getParser().getNewLineState();
- }
- return newState;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java deleted file mode 100644 index d1dd072cce..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/ConsumeToSpaceOrNewLine.java +++ /dev/null @@ -1,30 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import net.sf.antcontrib.cpptasks.parser.AbstractParser;
-import net.sf.antcontrib.cpptasks.parser.AbstractParserState;
-public class ConsumeToSpaceOrNewLine extends AbstractParserState {
- public ConsumeToSpaceOrNewLine(AbstractParser parser) {
- super(parser);
- }
- public AbstractParserState consume(char ch) {
- if (ch == ' ' || ch == '\t' || ch == '\n') {
- return getParser().getNewLineState();
- }
- return this;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java deleted file mode 100644 index 89724b26e5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/borland/QuoteBranchState.java +++ /dev/null @@ -1,35 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.borland;
-import net.sf.antcontrib.cpptasks.parser.AbstractParser;
-import net.sf.antcontrib.cpptasks.parser.AbstractParserState;
-public class QuoteBranchState extends AbstractParserState {
- private AbstractParserState quote;
- private AbstractParserState unquote;
- public QuoteBranchState(AbstractParser parser, AbstractParserState quote,
- AbstractParserState unquote) {
- super(parser);
- this.quote = quote;
- this.unquote = unquote;
- }
- public AbstractParserState consume(char ch) {
- if (ch == '"') {
- return quote;
- }
- return unquote.consume(ch);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java deleted file mode 100644 index e1d3deb8b6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranCompiler.java +++ /dev/null @@ -1,138 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compaq;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineFortranCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Compaq(r) Visual Fortran compiler.
- *
- * @author Curt Arnold
- */
-public class CompaqVisualFortranCompiler extends CommandLineFortranCompiler {
- private static final CompaqVisualFortranCompiler[] instance = new CompaqVisualFortranCompiler[]{new CompaqVisualFortranCompiler(
- false, null)};
- public static CompaqVisualFortranCompiler getInstance() {
- return instance[0];
- }
- private CompaqVisualFortranCompiler(boolean newEnvironment, Environment env) {
- super("DF", null, new String[]{".f90", ".for", ".f"}, new String[]{
- ".i", ".i90", ".fpp", ".inc", ".bak", ".exe"}, ".obj", false,
- null, newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- args.addElement("/nologo");
- args.addElement("/compile_only");
- if (debug) {
- args.addElement("/debug:full");
- args.addElement("/define:_DEBUG");
- } else {
- args.addElement("/debug:none");
- args.addElement("/define:NDEBUG");
- }
- if (multithreaded) {
- args.addElement("/threads");
- args.addElement("/define:_MT");
- } else {
- args.addElement("/nothreads");
- }
- boolean staticRuntime = linkType.isStaticRuntime();
- if (staticRuntime) {
- args.addElement("/libs:static");
- } else {
- args.addElement("/libs:dll");
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("/dll");
- args.addElement("/define:_DLL");
- }
- }
- public void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("/nowarn");
- break;
- case 1 :
- break;
- case 2 :
- break;
- case 3 :
- args.addElement("/warn:usage");
- break;
- case 4 :
- args.addElement("/warn:all");
- break;
- case 5 :
- args.addElement("/warn:errors");
- break;
- }
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new CompaqVisualFortranCompiler(newEnvironment, env);
- }
- return this;
- }
- protected void getDefineSwitch(StringBuffer buf, String define, String value) {
- buf.append("/define:");
- buf.append(define);
- if (value != null && value.length() > 0) {
- buf.append('=');
- buf.append(value);
- }
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ";");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- StringBuffer buf = new StringBuffer("/include:");
- if (includeDir.indexOf(' ') >= 0) {
- buf.append('"');
- buf.append(includeDir);
- buf.append('"');
- } else {
- buf.append(includeDir);
- }
- return buf.toString();
- }
- public Linker getLinker(LinkType type) {
- return CompaqVisualFortranLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- protected void getUndefineSwitch(StringBuffer buf, String define) {
- buf.append("/undefine:");
- buf.append(define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java deleted file mode 100644 index eb4a40769e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLibrarian.java +++ /dev/null @@ -1,82 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compaq;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioLibrarian;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioProcessor;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for the Compaq(r) Visual Fortran Librarian
- *
- * @author Curt Arnold
- */
-public class CompaqVisualFortranLibrarian extends CommandLineLinker {
- private static final CompaqVisualFortranLibrarian instance = new CompaqVisualFortranLibrarian();
- public static CompaqVisualFortranLibrarian getInstance() {
- return instance;
- }
- private CompaqVisualFortranLibrarian() {
- super("lib", "/bogus", new String[]{".obj"}, new String[0], ".lib",
- false, null);
- }
- protected void addBase(long base, Vector args) {
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- args.addElement("/nologo");
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- protected void addMap(boolean map, Vector args) {
- }
- protected void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- protected String getCommandFileSwitch(String commandFile) {
- return DevStudioProcessor.getCommandFileSwitch(commandFile);
- }
- public File[] getLibraryPath() {
- return new File[0];
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return new String[0];
- }
- public Linker getLinker(LinkType type) {
- return CompaqVisualFortranLinker.getInstance().getLinker(type);
- }
- protected int getMaximumCommandLength() {
- return DevStudioLibrarian.getInstance().getMaximumCommandLength();
- }
- protected String[] getOutputFileSwitch(String outputFile) {
- return DevStudioLibrarian.getInstance().getOutputFileSwitch(outputFile);
- }
- public boolean isCaseSensitive() {
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java deleted file mode 100644 index d83e3b213d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compaq/CompaqVisualFortranLinker.java +++ /dev/null @@ -1,77 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compaq;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleLinker;
-/**
- * Adapter for the Compaq(r) Visual Fortran linker.
- *
- * @author Curt Arnold
- */
-public final class CompaqVisualFortranLinker extends DevStudioCompatibleLinker {
- private static final CompaqVisualFortranLinker dllLinker = new CompaqVisualFortranLinker(
- ".dll");
- private static final CompaqVisualFortranLinker instance = new CompaqVisualFortranLinker(
- ".exe");
- public static CompaqVisualFortranLinker getInstance() {
- return instance;
- }
- private CompaqVisualFortranLinker(String outputSuffix) {
- super("DF", "__bogus__.xxx", outputSuffix);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
- args.addElement("/NOLOGO");
- boolean staticRuntime = linkType.isStaticRuntime();
- if (staticRuntime) {
- args.addElement("/libs:static");
- } else {
- args.addElement("/libs:dll");
- }
- if (debug) {
- args.addElement("/debug");
- } else {
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("/dll");
- } else {
- args.addElement("/exe");
- }
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return CompaqVisualFortranLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
- public String[] getOutputFileSwitch(String outputFile) {
- StringBuffer buf = new StringBuffer("/OUT:");
- if (outputFile.indexOf(' ') >= 0) {
- buf.append('"');
- buf.append(outputFile);
- buf.append('"');
- } else {
- buf.append(outputFile);
- }
- return new String[]{buf.toString()};
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java deleted file mode 100644 index 90c539c965..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAslcompiler.java +++ /dev/null @@ -1,75 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.AslcompilerDef;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.TargetDef;
-
-/**
- * An abstract asl compiler implementation.
- *
- */
-public abstract class AbstractAslcompiler extends AbstractProcessor
-implements Aslcompiler {
- private String outputSuffix;
- protected AbstractAslcompiler(String[] sourceExtensions,
- String[] headerExtensions, String outputSuffix) {
- super(sourceExtensions, headerExtensions);
- this.outputSuffix = outputSuffix;
- }
- abstract protected AslcompilerConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- AslcompilerDef specificConfig, TargetDef targetPlatform);
-
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- ProcessorDef specificConfig, TargetDef targetPlatform) {
- if (specificConfig == null) {
- throw new NullPointerException("specificConfig");
- }
- return createConfiguration(task, linkType, baseConfigs,
- (AslcompilerDef) specificConfig, targetPlatform);
- }
-
- public String getOutputFileName(String inputFile) {
- if (bid(inputFile) > 1) {
- String baseName = getBaseOutputName(inputFile);
- return baseName + outputSuffix;
- }
- return null;
- }
- protected String getBaseOutputName(String inputFile) {
- int lastSlash = inputFile.lastIndexOf('/');
- int lastReverse = inputFile.lastIndexOf('\\');
- int lastSep = inputFile.lastIndexOf(File.separatorChar);
- if (lastReverse > lastSlash) {
- lastSlash = lastReverse;
- }
- if (lastSep > lastSlash) {
- lastSlash = lastSep;
- }
- int lastPeriod = inputFile.lastIndexOf('.');
- if (lastPeriod < 0) {
- lastPeriod = inputFile.length();
- }
- return inputFile.substring(lastSlash + 1, lastPeriod);
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java deleted file mode 100644 index 1d49232a05..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractAssembler.java +++ /dev/null @@ -1,72 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.AssemblerDef;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.TargetDef;
-/**
- * An abstract assembler implementation.
- *
- */
-public abstract class AbstractAssembler extends AbstractProcessor
-implements Assembler {
- private String outputSuffix;
- protected AbstractAssembler(String[] sourceExtensions,
- String[] headerExtensions, String outputSuffix) {
- super(sourceExtensions, headerExtensions);
- this.outputSuffix = outputSuffix;
- }
- abstract protected AssemblerConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- AssemblerDef specificConfig, TargetDef targetPlatform);
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- ProcessorDef specificConfig, TargetDef targetPlatform) {
- if (specificConfig == null) {
- throw new NullPointerException("specificConfig");
- }
- return createConfiguration(task, linkType, baseConfigs,
- (AssemblerDef) specificConfig, targetPlatform);
- }
- public String getOutputFileName(String inputFile) {
- if (bid(inputFile) > 1) {
- String baseName = getBaseOutputName(inputFile);
- return baseName + outputSuffix;
- }
- return null;
- }
- protected String getBaseOutputName(String inputFile) {
- int lastSlash = inputFile.lastIndexOf('/');
- int lastReverse = inputFile.lastIndexOf('\\');
- int lastSep = inputFile.lastIndexOf(File.separatorChar);
- if (lastReverse > lastSlash) {
- lastSlash = lastReverse;
- }
- if (lastSep > lastSlash) {
- lastSlash = lastSep;
- }
- int lastPeriod = inputFile.lastIndexOf('.');
- if (lastPeriod < 0) {
- lastPeriod = inputFile.length();
- }
- return inputFile.substring(lastSlash + 1, lastPeriod);
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java deleted file mode 100644 index f16ec6caf3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java +++ /dev/null @@ -1,205 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.CompilerDef;
-import net.sf.antcontrib.cpptasks.DependencyInfo;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-import net.sf.antcontrib.cpptasks.TargetDef;
-
-/**
- * An abstract compiler implementation.
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public abstract class AbstractCompiler extends AbstractProcessor
- implements
- Compiler {
- private static final String[] emptyIncludeArray = new String[0];
- private String outputSuffix;
- protected AbstractCompiler(String[] sourceExtensions,
- String[] headerExtensions, String outputSuffix) {
- super(sourceExtensions, headerExtensions);
- this.outputSuffix = outputSuffix;
- }
- /**
- * Checks file name to see if parse should be attempted
- *
- * Default implementation returns false for files with extensions '.dll',
- * 'tlb', '.res'
- *
- */
- protected boolean canParse(File sourceFile) {
- String sourceName = sourceFile.toString();
- int lastPeriod = sourceName.lastIndexOf('.');
- if (lastPeriod >= 0 && lastPeriod == sourceName.length() - 4) {
- String ext = sourceName.substring(lastPeriod).toUpperCase();
- if (ext.equals(".DLL") || ext.equals(".TLB") || ext.equals(".RES")) {
- return false;
- }
- }
- return true;
- }
- abstract protected CompilerConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- CompilerDef specificConfig, TargetDef targetPlatform);
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- ProcessorDef specificConfig, TargetDef targetPlatform) {
- if (specificConfig == null) {
- throw new NullPointerException("specificConfig");
- }
- return createConfiguration(task, linkType, baseConfigs,
- (CompilerDef) specificConfig, targetPlatform);
- }
- abstract protected Parser createParser(File sourceFile);
- protected String getBaseOutputName(String inputFile) {
- int lastSlash = inputFile.lastIndexOf('/');
- int lastReverse = inputFile.lastIndexOf('\\');
- int lastSep = inputFile.lastIndexOf(File.separatorChar);
- if (lastReverse > lastSlash) {
- lastSlash = lastReverse;
- }
- if (lastSep > lastSlash) {
- lastSlash = lastSep;
- }
- int lastPeriod = inputFile.lastIndexOf('.');
- if (lastPeriod < 0) {
- lastPeriod = inputFile.length();
- }
- return inputFile.substring(lastSlash + 1, lastPeriod);
- }
- public String getOutputFileName(String inputFile) {
- //
- // if a recognized input file
- //
- if (bid(inputFile) > 1) {
- String baseName = getBaseOutputName(inputFile);
- return baseName + outputSuffix;
- }
- return null;
- }
- /**
- * Returns dependency info for the specified source file
- *
- * @param task
- * task for any diagnostic output
- * @param source
- * file to be parsed
- * @param includePath
- * include path to be used to resolve included files
- *
- * @param sysIncludePath
- * sysinclude path from build file, files resolved using
- * sysInclude path will not participate in dependency analysis
- *
- * @param envIncludePath
- * include path from environment variable, files resolved with
- * envIncludePath will not participate in dependency analysis
- *
- * @param baseDir
- * used to produce relative paths in DependencyInfo
- * @param includePathIdentifier
- * used to distinguish DependencyInfo's from different include
- * path settings
- *
- * @author Curt Arnold
- */
- public final DependencyInfo parseIncludes(CCTask task, File source,
- File[] includePath, File[] sysIncludePath, File[] envIncludePath,
- File baseDir, String includePathIdentifier) {
- //
- // if any of the include files can not be identified
- // change the sourceLastModified to Long.MAX_VALUE to
- // force recompilation of anything that depends on it
- long sourceLastModified = source.lastModified();
- File[] sourcePath = new File[1];
- sourcePath[0] = new File(source.getParent());
- Vector onIncludePath = new Vector();
- Vector onSysIncludePath = new Vector();
- String baseDirPath;
- try {
- baseDirPath = baseDir.getCanonicalPath();
- } catch (IOException ex) {
- baseDirPath = baseDir.toString();
- }
- String relativeSource = CUtil.getRelativePath(baseDirPath, source);
- String[] includes = emptyIncludeArray;
- if (canParse(source)) {
- Parser parser = createParser(source);
- try {
- Reader reader = new BufferedReader(new FileReader(source));
- parser.parse(reader);
- includes = parser.getIncludes();
- } catch (IOException ex) {
- task.log("Error parsing " + source.toString() + ":"
- + ex.toString());
- includes = new String[0];
- }
- }
- for (int i = 0; i < includes.length; i++) {
- String includeName = includes[i];
- if (!resolveInclude(includeName, sourcePath, onIncludePath)) {
- if (!resolveInclude(includeName, includePath, onIncludePath)) {
- if (!resolveInclude(includeName, sysIncludePath,
- onSysIncludePath)) {
- if (!resolveInclude(includeName, envIncludePath,
- onSysIncludePath)) {
- //
- // this should be enough to require us to reparse
- // the file with the missing include for dependency
- // information without forcing a rebuild
- sourceLastModified++;
- }
- }
- }
- }
- }
- for (int i = 0; i < onIncludePath.size(); i++) {
- String relativeInclude = CUtil.getRelativePath(baseDirPath,
- (File) onIncludePath.elementAt(i));
- onIncludePath.setElementAt(relativeInclude, i);
- }
- for (int i = 0; i < onSysIncludePath.size(); i++) {
- String relativeInclude = CUtil.getRelativePath(baseDirPath,
- (File) onSysIncludePath.elementAt(i));
- onSysIncludePath.setElementAt(relativeInclude, i);
- }
- return new DependencyInfo(includePathIdentifier, relativeSource,
- sourceLastModified, onIncludePath, onSysIncludePath);
- }
- protected boolean resolveInclude(String includeName, File[] includePath,
- Vector onThisPath) {
- for (int i = 0; i < includePath.length; i++) {
- File includeFile = new File(includePath[i], includeName);
- if (includeFile.exists()) {
- onThisPath.addElement(includeFile);
- return true;
- }
- }
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java deleted file mode 100644 index 20580e5d33..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java +++ /dev/null @@ -1,85 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.LinkerDef;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.TargetDef;
-
-
-import org.apache.tools.ant.types.Environment;
-/**
- * An abstract Linker implementation.
- *
- * @author Adam Murdoch
- */
-public abstract class AbstractLinker extends AbstractProcessor
- implements
- Linker {
- public AbstractLinker(String[] objExtensions, String[] ignoredExtensions) {
- super(objExtensions, ignoredExtensions);
- }
- /**
- * Returns the bid of the processor for the file.
- *
- * A linker will bid 1 on any unrecognized file type.
- *
- * @param inputFile
- * filename of input file
- * @return bid for the file, 0 indicates no interest, 1 indicates that the
- * processor recognizes the file but doesn't process it (header
- * files, for example), 100 indicates strong interest
- */
- public int bid(String inputFile) {
- int bid = super.bid(inputFile);
- switch (bid) {
- //
- // unrecognized extension, take the file
- //
- case 0 :
- return 1;
- //
- // discard the ignored extensions
- //
- case 1 :
- return 0;
- }
- return bid;
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- return this;
- }
- abstract protected LinkerConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- LinkerDef specificConfig, TargetDef targetPlatform);
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef[] baseConfigs,
- ProcessorDef specificConfig,
- TargetDef targetPlatform) {
- if (specificConfig == null) {
- throw new NullPointerException("specificConfig");
- }
- return createConfiguration(task, linkType, baseConfigs,
- (LinkerDef) specificConfig, targetPlatform);
- }
- public String getLibraryKey(File libfile) {
- return libfile.getName();
- }
- public abstract String getOutputFileName(String fileName);
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java deleted file mode 100644 index b6456d5e3e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AbstractProcessor.java +++ /dev/null @@ -1,129 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import org.apache.tools.ant.types.Environment;
-/**
- * An abstract processor (compiler/linker) implementation.
- *
- * @author Curt Arnold
- */
-public abstract class AbstractProcessor implements Processor, Cloneable {
- /**
- * default bid for a file name that the processor recognizes but does not
- * process and does not want to fall through to the linker
- */
- public final static int DEFAULT_DISCARD_BID = 1;
- /**
- * default bid for a file name that the processor desires to process
- */
- public final static int DEFAULT_PROCESS_BID = 100;
- /**
- * Determines the identification of a command line processor by capture the
- * first line of its output for a specific command.
- *
- * @param command
- * array of command line arguments starting with executable
- * name. For example, { "cl" }
- * @param fallback
- * start of identifier if there is an error in executing the
- * command
- * @return identifier for the processor
- */
- protected static String getIdentifier(String[] command, String fallback) {
- String identifier = fallback;
- try {
- String[] cmdout = CaptureStreamHandler.run(command);
- if (cmdout.length > 0) {
- identifier = cmdout[0];
- }
- } catch (Throwable ex) {
- identifier = fallback + ":" + ex.toString();
- }
- return identifier;
- }
- private final String[] headerExtensions;
- private final String[] sourceExtensions;
- protected AbstractProcessor(String[] sourceExtensions,
- String[] headerExtensions) {
- this.sourceExtensions = (String[]) sourceExtensions.clone();
- this.headerExtensions = (String[]) headerExtensions.clone();
- }
- /**
- * Returns the bid of the processor for the file.
- *
- * @param inputFile
- * filename of input file
- * @return bid for the file, 0 indicates no interest, 1 indicates that the
- * processor recognizes the file but doesn't process it (header
- * files, for example), 100 indicates strong interest
- */
- public int bid(String inputFile) {
- String lower = inputFile.toLowerCase();
- for (int i = 0; i < sourceExtensions.length; i++) {
- if (lower.endsWith(sourceExtensions[i])) {
- return DEFAULT_PROCESS_BID;
- }
- }
- for (int i = 0; i < headerExtensions.length; i++) {
- if (lower.endsWith(headerExtensions[i])) {
- return DEFAULT_DISCARD_BID;
- }
- }
- return 0;
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- return this;
- }
- protected Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
- public String[] getHeaderExtensions() {
- return (String[]) this.headerExtensions.clone();
- }
- abstract public String getIdentifier();
- /**
- * Gets the target operating system architecture
- *
- * @return String target operating system architecture
- */
- protected String getOSArch() {
- return System.getProperty("os.arch");
- }
- /**
- * Gets the target operating system name
- *
- * @return String target operating system name
- */
- protected String getOSName() {
- return System.getProperty("os.name");
- }
- public String[] getSourceExtensions() {
- return (String[]) this.sourceExtensions.clone();
- }
- /**
- * Returns true if the target operating system is Mac OS X or Darwin.
- *
- * @return boolean
- */
- protected boolean isDarwin() {
- String osName = getOSName();
- return "Mac OS X".equals(osName);
- }
- public final String toString() {
- return getIdentifier();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java deleted file mode 100644 index a210e1c684..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Aslcompiler.java +++ /dev/null @@ -1,23 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-/**
- * A asl compiler.
- *
- */
-public interface Aslcompiler extends Processor {
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java deleted file mode 100644 index 62ac2760c6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AslcompilerConfiguration.java +++ /dev/null @@ -1,29 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import org.apache.tools.ant.BuildException;
-/**
- * A configuration for an ASL compiler
- *
- */
-public interface AslcompilerConfiguration extends ProcessorConfiguration {
- void aslcompiler(CCTask task, File outputDir, String[] sourceFiles) throws BuildException;
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java deleted file mode 100644 index 1b6d7b5d11..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Assembler.java +++ /dev/null @@ -1,23 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-/**
- * A assembler.
- *
- */
-public interface Assembler extends Processor {
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java deleted file mode 100644 index 9411551b47..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/AssemblerConfiguration.java +++ /dev/null @@ -1,29 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import org.apache.tools.ant.BuildException;
-/**
- * A configuration for an assembler
- *
- */
-public interface AssemblerConfiguration extends ProcessorConfiguration {
- void assembler(CCTask task, File outputDir, String[] sourceFiles) throws BuildException;
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java deleted file mode 100644 index 1b89a70a58..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java +++ /dev/null @@ -1,122 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.util.Vector;
-
-import org.apache.tools.ant.taskdefs.Execute;
-import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
-/**
- * Implements ExecuteStreamHandler to capture the output of a Execute to an
- * array of strings
- *
- * @author Curt Arnold
- */
-public class CaptureStreamHandler implements ExecuteStreamHandler {
- /**
- * Runs an executable and captures the output in a String array
- *
- * @param cmdline
- * command line arguments
- * @return output of process
- */
- public static String[] run(String[] cmdline) {
- CaptureStreamHandler handler = new CaptureStreamHandler();
- Execute exec = new Execute(handler);
- exec.setCommandline(cmdline);
- try {
- int status = exec.execute();
- } catch (IOException ex) {
- }
- return handler.getOutput();
- }
- private InputStream errorStream;
- private InputStream fromProcess;
- public CaptureStreamHandler() {
- }
- public String[] getOutput() {
- String[] output;
- if (fromProcess != null) {
- Vector lines = new Vector(10);
- try {
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(errorStream));
- for (int i = 0; i < 2; i++) {
- for (int j = 0; j < 100; j++) {
- String line = reader.readLine();
- if (line == null) {
- reader = new BufferedReader(new InputStreamReader(
- fromProcess));
- break;
- }
- lines.addElement(line);
- }
- }
- } catch (IOException ex) {
- }
- output = new String[lines.size()];
- lines.copyInto(output);
- return output;
- }
- output = new String[0];
- return output;
- }
- /**
- * Install a handler for the error stream of the subprocess.
- *
- * @param is
- * input stream to read from the error stream from the
- * subprocess
- */
- public void setProcessErrorStream(InputStream is) throws IOException {
- errorStream = is;
- }
- /**
- * Install a handler for the input stream of the subprocess.
- *
- * @param os
- * output stream to write to the standard input stream of the
- * subprocess
- */
- public void setProcessInputStream(OutputStream os) throws IOException {
- os.close();
- }
- /**
- * Install a handler for the output stream of the subprocess.
- *
- * @param is
- * input stream to read from the error stream from the
- * subprocess
- */
- public void setProcessOutputStream(InputStream is) throws IOException {
- fromProcess = is;
- }
- /**
- * Start handling of the streams.
- */
- public void start() throws IOException {
- }
- /**
- * Stop handling of the streams - will not be restarted.
- */
- public void stop() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java deleted file mode 100644 index 88dda5796f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompiler.java +++ /dev/null @@ -1,226 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.AslcompilerDef;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.TargetDef;
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-
-import org.apache.tools.ant.BuildException;
-/**
- * An abstract ASL Compiler implementation which uses an external program to
- * perform the ASL compile.
- *
- */
-public abstract class CommandLineAslcompiler extends AbstractAslcompiler{
-
- private String command;
- private String identifier;
- private String identifierArg;
-
- protected CommandLineAslcompiler(String command, String identifierArg,
- String[] sourceExtensions, String[] headerExtensions,
- String outputSuffix) {
- super(sourceExtensions, headerExtensions, outputSuffix);
- this.command = command;
- this.identifierArg = identifierArg;
- }
-
- abstract protected void addImpliedArgs(Vector args, boolean debug,
- Boolean defaultflag);
-
- /**
- * Compile a ACPI source file
- *
- */
- public void aslcompiler(CCTask task, File outputDir, String[] sourceFiles,
- String[] args, String[] endArgs) throws BuildException{
- String command = getCommand();
- int baseLength = command.length() + args.length + endArgs.length;
- for (int i = 0; i < args.length; i++) {
- baseLength += args[i].length();
- }
- for (int i = 0; i < endArgs.length; i++) {
- baseLength += endArgs[i].length();
- }
- if (baseLength > getMaximumCommandLength()) {
- throw new BuildException(
- "Command line is over maximum length without sepcifying source file");
- }
- int maxInputFilesPerCommand = getMaximumInputFilesPerCommand();
- int argumentCountPerInputFile = getArgumentCountPerInputFIle();
- for (int sourceIndex = 0; sourceIndex < sourceFiles.length;) {
- int cmdLength = baseLength;
- int firstFileNextExec;
- for (firstFileNextExec = sourceIndex; firstFileNextExec < sourceFiles.length
- && (firstFileNextExec - sourceIndex) < maxInputFilesPerCommand; firstFileNextExec++) {
- cmdLength += getTotalArgumentLengthForInputFile(outputDir,
- sourceFiles[firstFileNextExec]);
- if (cmdLength >= getMaximumCommandLength())
- break;
- }
- if (firstFileNextExec == sourceIndex) {
- throw new BuildException(
- "Extremely long file name, can't fit on command line");
- }
- int argCount = args.length + 1 + endArgs.length
- + (firstFileNextExec - sourceIndex)
- * argumentCountPerInputFile;
- String[] commandline = new String[argCount];
- int index = 0;
- commandline[index++] = command;
- for (int j = 0; j < args.length; j++) {
- commandline[index++] = args[j];
- }
- for (int j = sourceIndex; j < firstFileNextExec; j++) {
- for (int k = 0; k < argumentCountPerInputFile; k++) {
- commandline[index++] = getInputFileArgument(outputDir,
- sourceFiles[j], k);
- }
- }
- for (int j = 0; j < endArgs.length; j++) {
- commandline[index++] = endArgs[j];
- }
- int retval = runCommand(task, outputDir, commandline);
- // if with monitor, add more code
- if (retval != 0) {
- throw new BuildException(this.getCommand()
- + " failed with return code " + retval,
- task.getLocation());
- }
- sourceIndex = firstFileNextExec;
- }
- }
-
- protected AslcompilerConfiguration createConfiguration(final CCTask task,
- final LinkType linkType,
- final ProcessorDef[] baseDefs,
- final AslcompilerDef specificDef,
- final TargetDef targetPlatform) {
- Vector args = new Vector();
- AslcompilerDef[] defaultProviders = new AslcompilerDef[baseDefs.length +1];
- for (int i = 0; i < baseDefs.length; i++) {
- defaultProviders[i + 1] = (AslcompilerDef) baseDefs[i];
- }
- defaultProviders[0] = specificDef;
- Vector cmdArgs = new Vector();
- //
- // add command line arguments inherited from <cc> element
- // any "extends" and finally and specific AslcompilerDef
- //
- CommandLineArgument[] commandArgs;
- for (int i = defaultProviders.length - 1; i >=0; i--){
- commandArgs = defaultProviders[i].getActiveProcessorArgs();
- for (int j = 0; j < commandArgs.length; j++) {
- if (commandArgs[j].getLocation() == 0) {
- args.addElement(commandArgs[j].getValue());
- }
- else {
- cmdArgs.addElement(commandArgs[j]);
- }
- }
- }
- // omit param
- boolean debug = specificDef.getDebug(baseDefs, 0);
- Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1);
- this.addImpliedArgs(args, debug, defaultflag);
- Enumeration argEnum = cmdArgs.elements();
- int endCount = 0;
- while( argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum.nextElement();
- switch (arg.getLocation()) {
- case 1 :
- args.addElement(arg.getValue());
- break;
- case 2 :
- endCount++;
- break;
- }
- }
- String[] endArgs = new String[endCount];
- argEnum = cmdArgs.elements();
- int index = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum.nextElement();
- if (arg.getLocation() == 2) {
- endArgs[index++] = arg.getValue();
- }
- }
- String[] argArray = new String[args.size()];
- args.copyInto(argArray);
- return new CommandLineAslcompilerConfiguration(this, argArray, true, endArgs);
- }
-
- protected int getArgumentCountPerInputFile() {
- return 1;
- }
-
- public String getIdentifier() {
- if (identifier == null) {
- if (identifierArg == null) {
- identifier = getIdentifier(new String[]{command}, command);
- }
- else {
- identifier = getIdentifier(
- new String[]{command, identifierArg}, command);
- }
- }
- return identifier;
- }
-
- public final String getCommand() {
- return command;
- }
- abstract public int getMaximumCommandLength();
- public void setCommand(String command) {
- this.command = command;
- }
- protected int getTotalArgumentLengthForInputFile(File outputDir,
- String inputFile) {
- return inputFile.length() + 1;
- }
- protected int runCommand(CCTask task, File workingDir, String[] cmdline)
- throws BuildException {
- return CUtil.runCommand(task, workingDir, cmdline, false, null);
-
- }
- protected int getMaximumInputFilesPerCommand(){
- return 1;
- }
- protected int getArgumentCountPerInputFIle(){
- return 1;
- }
- protected String getInputFileArgument(File outputDir, String filename, int index) {
- //
- // if there is an embedded space,
- // must enclose in quotes
- if (filename.indexOf(' ') >= 0) {
- StringBuffer buf = new StringBuffer("\"");
- buf.append(filename);
- buf.append("\"");
- return buf.toString();
- }
- return filename;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java deleted file mode 100644 index 9a3457dafb..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAslcompilerConfiguration.java +++ /dev/null @@ -1,93 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-
-import org.apache.tools.ant.BuildException;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-
-/**
- * A configuration for an ASL compiler
- *
- */
-public final class CommandLineAslcompilerConfiguration implements
- AslcompilerConfiguration {
-
- private String[] args;
-
- private CommandLineAslcompiler acpi;
-
- private String[] endArgs;
-
- private boolean rebuild;
-
- public CommandLineAslcompilerConfiguration (CommandLineAslcompiler acpi,
- String[] args, boolean rebuild, String[] endArgs) {
- if (acpi == null) {
- throw new NullPointerException("acpi");
- }
- if (args == null) {
- this.args = new String[0];
- } else {
- this.args = (String[]) args.clone();
- }
- this.acpi = acpi;
- this.rebuild = rebuild;
- this.endArgs = (String[]) endArgs.clone();
- }
-
- public int bid (String inputFile) {
- int acpiBid = acpi.bid(inputFile);
- return acpiBid;
- }
-
- public void aslcompiler (CCTask task, File outputDir, String[] sourceFiles)
- throws BuildException {
- try {
- acpi.aslcompiler(task, outputDir, sourceFiles, args, endArgs);
- } catch (BuildException ex) {
- throw ex;
- }
- }
-
- public String getIdentifier () {
- return acpi.getCommand();
- }
-
- public ProcessorParam[] getParams () {
- return new ProcessorParam[0];
- }
-
- public boolean getRebuild () {
- return rebuild;
- }
-
- public String[] getPreArguments () {
- return (String[]) args.clone();
- }
-
- public String[] getEndArguments () {
- return (String[]) endArgs.clone();
- }
-
- public String getOutputFileName (String inputFile) {
- return acpi.getOutputFileName(inputFile);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java deleted file mode 100644 index f01fc5ee61..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssembler.java +++ /dev/null @@ -1,326 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.AssemblerDef;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.TargetDef;
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-
-import org.apache.tools.ant.BuildException;
-
-/**
- * An abstract Assembler implementation which uses an external program to
- * perform the assemble.
- *
- */
-public abstract class CommandLineAssembler extends AbstractAssembler {
-
- private String command;
-
- private String identifier;
-
- private String identifierArg;
-
- protected CommandLineAssembler (String command, String identifierArg,
- String[] sourceExtensions, String[] headerExtensions,
- String outputSuffix) {
- super(sourceExtensions, headerExtensions, outputSuffix);
- this.command = command;
- this.identifierArg = identifierArg;
- }
-
- abstract protected void addImpliedArgs(Vector args, boolean debug,
- Boolean defaultflag);
-
- /**
- * Adds command-line arguments for include directories.
- *
- * If relativeArgs is not null will add corresponding relative paths include
- * switches to that vector (for use in building a configuration identifier
- * that is consistent between machines).
- *
- * @param baseDirPaths
- * A vector containing the parts of the working directory,
- * produced by CUtil.DecomposeFile.
- * @param includeDirs
- * Array of include directory paths
- * @param args
- * Vector of command line arguments used to execute the task
- * @param relativeArgs
- * Vector of command line arguments used to build the
- * configuration identifier
- */
- protected void addIncludes(String baseDirPath, File[] includeDirs,
- Vector args, Vector relativeArgs, StringBuffer includePathId) {
- for (int i = 0; i < includeDirs.length; i++) {
- args.addElement(getIncludeDirSwitch(includeDirs[i]
- .getAbsolutePath()));
- if (relativeArgs != null) {
- String relative = CUtil.getRelativePath(baseDirPath,
- includeDirs[i]);
- relativeArgs.addElement(getIncludeDirSwitch(relative));
- if (includePathId != null) {
- if (includePathId.length() == 0) {
- includePathId.append("/I");
- } else {
- includePathId.append(" /I");
- }
- includePathId.append(relative);
- }
- }
- }
- }
-
- abstract protected String getIncludeDirSwitch(String source);
-
- /**
- * Assembles a source file
- *
- */
- public void assembler(CCTask task, File outputDir, String[] sourceFiles,
- String[] args, String[] endArgs) throws BuildException {
- String command = getCommand();
- int baseLength = command.length() + args.length + endArgs.length;
- for (int i = 0; i < args.length; i++) {
- baseLength += args[i].length();
- }
- for (int i = 0; i < endArgs.length; i++) {
- baseLength += endArgs[i].length();
- }
- if (baseLength > getMaximumCommandLength()) {
- throw new BuildException(
- "Command line is over maximum length without sepcifying source file");
- }
- int maxInputFilesPerCommand = getMaximumInputFilesPerCommand();
- int argumentCountPerInputFile = getArgumentCountPerInputFIle();
- for (int sourceIndex = 0; sourceIndex < sourceFiles.length;) {
- int cmdLength = baseLength;
- int firstFileNextExec;
- for (firstFileNextExec = sourceIndex; firstFileNextExec < sourceFiles.length
- && (firstFileNextExec - sourceIndex) < maxInputFilesPerCommand; firstFileNextExec++) {
- cmdLength += getTotalArgumentLengthForInputFile(outputDir,
- sourceFiles[firstFileNextExec]);
- if (cmdLength >= getMaximumCommandLength())
- break;
- }
- if (firstFileNextExec == sourceIndex) {
- throw new BuildException(
- "Extremely long file name, can't fit on command line");
- }
- int argCount = args.length + 1 + endArgs.length
- + (firstFileNextExec - sourceIndex)
- * argumentCountPerInputFile;
- String[] commandline = new String[argCount];
- int index = 0;
- commandline[index++] = command;
- for (int j = 0; j < args.length; j++) {
- commandline[index++] = args[j];
- }
- for (int j = sourceIndex; j < firstFileNextExec; j++) {
- for (int k = 0; k < argumentCountPerInputFile; k++) {
- commandline[index++] = getInputFileArgument(outputDir,
- sourceFiles[j], k);
- }
- }
- for (int j = 0; j < endArgs.length; j++) {
- commandline[index++] = endArgs[j];
- }
- int retval = runCommand(task, outputDir, commandline);
- // if with monitor, add more code
- if (retval != 0) {
- throw new BuildException(this.getCommand()
- + " failed with return code " + retval, task
- .getLocation());
- }
- sourceIndex = firstFileNextExec;
- }
- }
-
- protected AssemblerConfiguration createConfiguration(final CCTask task,
- final LinkType linkType, final ProcessorDef[] baseDefs,
- final AssemblerDef specificDef,
- final TargetDef targetPlatform) {
- Vector args = new Vector();
- AssemblerDef[] defaultProviders = new AssemblerDef[baseDefs.length + 1];
- for (int i = 0; i < baseDefs.length; i++) {
- defaultProviders[i + 1] = (AssemblerDef) baseDefs[i];
- }
- defaultProviders[0] = specificDef;
- Vector cmdArgs = new Vector();
- //
- // add command line arguments inherited from <cc> element
- // any "extends" and finally and specific AssemblerDef
- //
- CommandLineArgument[] commandArgs;
- for (int i = defaultProviders.length - 1; i >= 0; i--) {
- commandArgs = defaultProviders[i].getActiveProcessorArgs();
- for (int j = 0; j < commandArgs.length; j++) {
- if (commandArgs[j].getLocation() == 0) {
- args.addElement(commandArgs[j].getValue());
- } else {
- cmdArgs.addElement(commandArgs[j]);
- }
- }
- }
- // omit param
- boolean debug = specificDef.getDebug(baseDefs, 0);
- Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1);
- this.addImpliedArgs(args, debug, defaultflag);
- //
- // Want to have distinct set of arguments with relative
- // path names for includes that are used to build
- // the configuration identifier
- //
- Vector relativeArgs = (Vector) args.clone();
- //
- // add all active include an
- //
- StringBuffer includePathIdentifier = new StringBuffer();
- File baseDir = specificDef.getProject().getBaseDir();
- String baseDirPath;
- try {
- baseDirPath = baseDir.getCanonicalPath();
- } catch (IOException ex) {
- baseDirPath = baseDir.toString();
- }
- Vector includePath = new Vector();
- Vector sysIncludePath = new Vector();
- for (int i = defaultProviders.length - 1; i >= 0; i--) {
- String[] incPath = defaultProviders[i].getActiveIncludePaths();
- for (int j = 0; j < incPath.length; j++) {
- includePath.addElement(incPath[j]);
- }
- incPath = defaultProviders[i].getActiveSysIncludePaths();
- for (int j = 0; j < incPath.length; j++) {
- sysIncludePath.addElement(incPath[j]);
- }
- }
- File[] incPath = new File[includePath.size()];
- for (int i = 0; i < includePath.size(); i++) {
- incPath[i] = new File((String) includePath.elementAt(i));
- }
- File[] sysIncPath = new File[sysIncludePath.size()];
- for (int i = 0; i < sysIncludePath.size(); i++) {
- sysIncPath[i] = new File((String) sysIncludePath.elementAt(i));
- }
- addIncludes(baseDirPath, incPath, args, relativeArgs,
- includePathIdentifier);
- addIncludes(baseDirPath, sysIncPath, args, null, null);
- StringBuffer buf = new StringBuffer(getIdentifier());
- for (int i = 0; i < relativeArgs.size(); i++) {
- buf.append(relativeArgs.elementAt(i));
- buf.append(' ');
- }
- buf.setLength(buf.length() - 1);
- Enumeration argEnum = cmdArgs.elements();
- int endCount = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum
- .nextElement();
- switch (arg.getLocation()) {
- case 1:
- args.addElement(arg.getValue());
- break;
- case 2:
- endCount++;
- break;
- }
- }
- String[] endArgs = new String[endCount];
- argEnum = cmdArgs.elements();
- int index = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum
- .nextElement();
- if (arg.getLocation() == 2) {
- endArgs[index++] = arg.getValue();
- }
- }
- String[] argArray = new String[args.size()];
- args.copyInto(argArray);
- return new CommandLineAssemblerConfiguration(this, incPath, sysIncPath,
- new File[0], argArray, true, endArgs, new String[0]);
- }
-
- protected int getArgumentCountPerInputFile() {
- return 1;
- }
-
- protected abstract File[] getEnvironmentIncludePath();
-
- public String getIdentifier() {
- if (identifier == null) {
- if (identifierArg == null) {
- identifier = getIdentifier(new String[] { command }, command);
- } else {
- identifier = getIdentifier(new String[] { command,
- identifierArg }, command);
- }
- }
- return identifier;
- }
-
- public final String getCommand() {
- return command;
- }
-
- abstract public int getMaximumCommandLength();
-
- public void setCommand(String command) {
- this.command = command;
- }
-
- protected int getTotalArgumentLengthForInputFile(File outputDir,
- String inputFile) {
- return inputFile.length() + 1;
- }
-
- protected int runCommand(CCTask task, File workingDir, String[] cmdline)
- throws BuildException {
- return CUtil.runCommand(task, workingDir, cmdline, false, null);
- }
-
- protected int getMaximumInputFilesPerCommand() {
- return Integer.MAX_VALUE;
- }
-
- protected int getArgumentCountPerInputFIle() {
- return 1;
- }
-
- protected String getInputFileArgument(File outputDir, String filename,
- int index) {
- //
- // if there is an embedded space,
- // must enclose in quotes
- if (filename.indexOf(' ') >= 0) {
- StringBuffer buf = new StringBuffer("\"");
- buf.append(filename);
- buf.append("\"");
- return buf.toString();
- }
- return filename;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java deleted file mode 100644 index 542d441559..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineAssemblerConfiguration.java +++ /dev/null @@ -1,123 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-
-import org.apache.tools.ant.BuildException;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-
-/**
- * A configuration for an assember
- *
- */
-public final class CommandLineAssemblerConfiguration implements
- AssemblerConfiguration {
-
- private String[] args;
-
- private CommandLineAssembler assembler;
-
- private String[] endArgs;
-
- //
- // include path from environment variable
- // not explicitly stated in Ant script
- //
- private File[] envIncludePath;
-
- private String[] exceptFiles;
-
- private File[] includePath;
-
- private boolean rebuild;
-
- private File[] sysIncludePath;
-
- public CommandLineAssemblerConfiguration (CommandLineAssembler assembler,
- File[] includePath, File[] sysIncludePath,
- File[] envIncludePath, String[] args, boolean rebuild,
- String[] endArgs, String[] exceptFiles) {
- if (assembler == null) {
- throw new NullPointerException("assembler");
- }
- if (args == null) {
- this.args = new String[0];
- } else {
- this.args = (String[]) args.clone();
- }
- if (includePath == null) {
- this.includePath = new File[0];
- } else {
- this.includePath = (File[]) includePath.clone();
- }
- if (sysIncludePath == null) {
- this.sysIncludePath = new File[0];
- } else {
- this.sysIncludePath = (File[]) sysIncludePath.clone();
- }
- if (envIncludePath == null) {
- this.envIncludePath = new File[0];
- } else {
- this.envIncludePath = (File[]) envIncludePath.clone();
- }
- this.assembler = assembler;
- this.rebuild = rebuild;
- this.endArgs = (String[]) endArgs.clone();
- this.exceptFiles = (String[]) exceptFiles.clone();
- }
-
- public int bid(String inputFile) {
- int assembleBid = assembler.bid(inputFile);
- return assembleBid;
- }
-
- public void assembler(CCTask task, File outputDir, String[] sourceFiles)
- throws BuildException {
- try {
- assembler.assembler(task, outputDir, sourceFiles, args, endArgs);
- } catch (BuildException ex) {
- throw ex;
- }
- }
-
- public String getOutputFileName(String inputFile) {
- return assembler.getOutputFileName(inputFile);
- }
-
- public String getIdentifier() {
- return assembler.getCommand();
- }
-
- public ProcessorParam[] getParams() {
- return new ProcessorParam[0];
- }
-
- public boolean getRebuild() {
- return rebuild;
- }
-
- public String[] getPreArguments() {
- return (String[]) args.clone();
- }
-
- public String[] getEndArguments() {
- return (String[]) endArgs.clone();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java deleted file mode 100644 index 442d6b8187..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCCompiler.java +++ /dev/null @@ -1,42 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * An abstract Compiler implementation which uses an external program to
- * perform the compile.
- *
- * @author Adam Murdoch
- */
-public abstract class CommandLineCCompiler extends CommandLineCompiler {
- protected CommandLineCCompiler(String command, String identifierArg,
- String[] sourceExtensions, String[] headerExtensions,
- String outputSuffix, boolean libtool,
- CommandLineCCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super(command, identifierArg, sourceExtensions, headerExtensions,
- outputSuffix, libtool, libtoolCompiler, newEnvironment, env);
- }
- protected Parser createParser(File source) {
- return new CParser();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java deleted file mode 100644 index 3f45ce539d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java +++ /dev/null @@ -1,435 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.CompilerDef;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-import net.sf.antcontrib.cpptasks.types.UndefineArgument;
-import net.sf.antcontrib.cpptasks.TargetDef;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;;
-/**
- * An abstract Compiler implementation which uses an external program to
- * perform the compile.
- *
- * @author Adam Murdoch
- */
-public abstract class CommandLineCompiler extends AbstractCompiler {
- private String command;
- private final Environment env;
- private String identifier;
- private String identifierArg;
- private boolean libtool;
- private CommandLineCompiler libtoolCompiler;
- private final boolean newEnvironment;
- protected CommandLineCompiler(String command, String identifierArg,
- String[] sourceExtensions, String[] headerExtensions,
- String outputSuffix, boolean libtool,
- CommandLineCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super(sourceExtensions, headerExtensions, outputSuffix);
- this.command = command;
- if (libtool && libtoolCompiler != null) {
- throw new java.lang.IllegalArgumentException(
- "libtoolCompiler should be null when libtool is true");
- }
- this.libtool = libtool;
- this.libtoolCompiler = libtoolCompiler;
- this.identifierArg = identifierArg;
- this.newEnvironment = newEnvironment;
- this.env = env;
- }
- abstract protected void addImpliedArgs(Vector args, boolean debug,
- boolean multithreaded, boolean exceptions, LinkType linkType,
- Boolean rtti, OptimizationEnum optimization, Boolean defaultflag);
- /**
- * Adds command-line arguments for include directories.
- *
- * If relativeArgs is not null will add corresponding relative paths
- * include switches to that vector (for use in building a configuration
- * identifier that is consistent between machines).
- *
- * @param baseDirPaths
- * A vector containing the parts of the working directory,
- * produced by CUtil.DecomposeFile.
- * @param includeDirs
- * Array of include directory paths
- * @param args
- * Vector of command line arguments used to execute the task
- * @param relativeArgs
- * Vector of command line arguments used to build the
- * configuration identifier
- */
- protected void addIncludes(String baseDirPath, File[] includeDirs,
- Vector args, Vector relativeArgs, StringBuffer includePathId) {
- for (int i = 0; i < includeDirs.length; i++) {
- args.addElement(getIncludeDirSwitch(includeDirs[i]
- .getAbsolutePath()));
- if (relativeArgs != null) {
- String relative = CUtil.getRelativePath(baseDirPath,
- includeDirs[i]);
- relativeArgs.addElement(getIncludeDirSwitch(relative));
- if (includePathId != null) {
- if (includePathId.length() == 0) {
- includePathId.append("/I");
- } else {
- includePathId.append(" /I");
- }
- includePathId.append(relative);
- }
- }
- }
- }
- abstract protected void addWarningSwitch(Vector args, int warnings);
- protected void buildDefineArguments(CompilerDef[] defs, Vector args) {
- //
- // assume that we aren't inheriting defines from containing <cc>
- //
- UndefineArgument[] merged = defs[0].getActiveDefines();
- for (int i = 1; i < defs.length; i++) {
- //
- // if we are inheriting, merge the specific defines with the
- // containing defines
- merged = UndefineArgument.merge(defs[i].getActiveDefines(), merged);
- }
- StringBuffer buf = new StringBuffer(30);
- for (int i = 0; i < merged.length; i++) {
- buf.setLength(0);
- UndefineArgument current = merged[i];
- if (current.isDefine()) {
- getDefineSwitch(buf, current.getName(), current.getValue());
- } else {
- getUndefineSwitch(buf, current.getName());
- }
- args.addElement(buf.toString());
- }
- }
- /**
- * Compiles a source file.
- *
- * @author Curt Arnold
- */
- public void compile(CCTask task, File outputDir, String[] sourceFiles,
- String[] args, String[] endArgs, boolean relentless,
- CommandLineCompilerConfiguration config, ProgressMonitor monitor)
- throws BuildException {
- BuildException exc = null;
- //
- // determine length of executable name and args
- //
- String command = getCommand();
- int baseLength = command.length() + args.length + endArgs.length;
- if (libtool) {
- baseLength += 8;
- }
- for (int i = 0; i < args.length; i++) {
- baseLength += args[i].length();
- }
- for (int i = 0; i < endArgs.length; i++) {
- baseLength += endArgs[i].length();
- }
- if (baseLength > getMaximumCommandLength()) {
- throw new BuildException(
- "Command line is over maximum length without specifying source file");
- }
- //
- // typically either 1 or Integer.MAX_VALUE
- //
- int maxInputFilesPerCommand = getMaximumInputFilesPerCommand();
- int argumentCountPerInputFile = getArgumentCountPerInputFile();
- for (int sourceIndex = 0; sourceIndex < sourceFiles.length;) {
- int cmdLength = baseLength;
- int firstFileNextExec;
- for (firstFileNextExec = sourceIndex; firstFileNextExec < sourceFiles.length
- && (firstFileNextExec - sourceIndex) < maxInputFilesPerCommand; firstFileNextExec++) {
- cmdLength += getTotalArgumentLengthForInputFile(outputDir,
- sourceFiles[firstFileNextExec]);
- if (cmdLength >= getMaximumCommandLength())
- break;
- }
- if (firstFileNextExec == sourceIndex) {
- throw new BuildException(
- "Extremely long file name, can't fit on command line");
- }
- int argCount = args.length + 1 + endArgs.length
- + (firstFileNextExec - sourceIndex)
- * argumentCountPerInputFile;
- if (libtool) {
- argCount++;
- }
- String[] commandline = new String[argCount];
- int index = 0;
- if (libtool) {
- commandline[index++] = "libtool";
- }
- commandline[index++] = command;
- for (int j = 0; j < args.length; j++) {
- commandline[index++] = args[j];
- }
- for (int j = sourceIndex; j < firstFileNextExec; j++) {
- for (int k = 0; k < argumentCountPerInputFile; k++) {
- commandline[index++] = getInputFileArgument(outputDir,
- sourceFiles[j], k);
- }
- }
- for (int j = 0; j < endArgs.length; j++) {
- commandline[index++] = endArgs[j];
- }
- int retval = runCommand(task, outputDir, commandline);
- if (monitor != null) {
- String[] fileNames = new String[firstFileNextExec - sourceIndex];
- for (int j = 0; j < fileNames.length; j++) {
- fileNames[j] = sourceFiles[sourceIndex + j];
- }
- monitor.progress(fileNames);
- }
- //
- // if the process returned a failure code and
- // we aren't holding an exception from an earlier
- // interation
- if (retval != 0 && exc == null) {
- //
- // construct the exception
- //
- exc = new BuildException(this.getCommand()
- + " failed with return code " + retval, task
- .getLocation());
- //
- // and throw it now unless we are relentless
- //
- if (!relentless) {
- throw exc;
- }
- }
- sourceIndex = firstFileNextExec;
- }
- //
- // if the compiler returned a failure value earlier
- // then throw an exception
- if (exc != null) {
- throw exc;
- }
- }
- protected CompilerConfiguration createConfiguration(final CCTask task,
- final LinkType linkType,
- final ProcessorDef[] baseDefs,
- final CompilerDef specificDef,
- final TargetDef targetPlatform) {
- Vector args = new Vector();
- CompilerDef[] defaultProviders = new CompilerDef[baseDefs.length + 1];
- for (int i = 0; i < baseDefs.length; i++) {
- defaultProviders[i + 1] = (CompilerDef) baseDefs[i];
- }
- defaultProviders[0] = specificDef;
- Vector cmdArgs = new Vector();
- //
- // add command line arguments inherited from <cc> element
- // any "extends" and finally the specific CompilerDef
- CommandLineArgument[] commandArgs;
- for (int i = defaultProviders.length - 1; i >= 0; i--) {
- commandArgs = defaultProviders[i].getActiveProcessorArgs();
- for (int j = 0; j < commandArgs.length; j++) {
- if (commandArgs[j].getLocation() == 0) {
- args.addElement(commandArgs[j].getValue());
- } else {
- cmdArgs.addElement(commandArgs[j]);
- }
- }
- }
- Vector params = new Vector();
- //
- // add command line arguments inherited from <cc> element
- // any "extends" and finally the specific CompilerDef
- ProcessorParam[] paramArray;
- for (int i = defaultProviders.length - 1; i >= 0; i--) {
- paramArray = defaultProviders[i].getActiveProcessorParams();
- for (int j = 0; j < paramArray.length; j++) {
- params.add(paramArray[j]);
- }
- }
- paramArray = (ProcessorParam[]) (params
- .toArray(new ProcessorParam[params.size()]));
- boolean multithreaded = specificDef.getMultithreaded(defaultProviders,
- 1);
- boolean debug = specificDef.getDebug(baseDefs, 0);
- boolean exceptions = specificDef.getExceptions(defaultProviders, 1);
- Boolean rtti = specificDef.getRtti(defaultProviders, 1);
- Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1);
- OptimizationEnum optimization = specificDef.getOptimization(defaultProviders, 1);
- this.addImpliedArgs(args, debug, multithreaded, exceptions, linkType, rtti, optimization, defaultflag);
- //
- // add all appropriate defines and undefines
- //
- buildDefineArguments(defaultProviders, args);
- //
- // Want to have distinct set of arguments with relative
- // path names for includes that are used to build
- // the configuration identifier
- //
- Vector relativeArgs = (Vector) args.clone();
- //
- // add all active include and sysincludes
- //
- StringBuffer includePathIdentifier = new StringBuffer();
- File baseDir = specificDef.getProject().getBaseDir();
- String baseDirPath;
- try {
- baseDirPath = baseDir.getCanonicalPath();
- } catch (IOException ex) {
- baseDirPath = baseDir.toString();
- }
- Vector includePath = new Vector();
- Vector sysIncludePath = new Vector();
- for (int i = defaultProviders.length - 1; i >= 0; i--) {
- String[] incPath = defaultProviders[i].getActiveIncludePaths();
- for (int j = 0; j < incPath.length; j++) {
- includePath.addElement(incPath[j]);
- }
- incPath = defaultProviders[i].getActiveSysIncludePaths();
- for (int j = 0; j < incPath.length; j++) {
- sysIncludePath.addElement(incPath[j]);
- }
- }
- File[] incPath = new File[includePath.size()];
- for (int i = 0; i < includePath.size(); i++) {
- incPath[i] = new File((String) includePath.elementAt(i));
- }
- File[] sysIncPath = new File[sysIncludePath.size()];
- for (int i = 0; i < sysIncludePath.size(); i++) {
- sysIncPath[i] = new File((String) sysIncludePath.elementAt(i));
- }
- addIncludes(baseDirPath, incPath, args, relativeArgs,
- includePathIdentifier);
- addIncludes(baseDirPath, sysIncPath, args, null, null);
- StringBuffer buf = new StringBuffer(getIdentifier());
- for (int i = 0; i < relativeArgs.size(); i++) {
- buf.append(relativeArgs.elementAt(i));
- buf.append(' ');
- }
- buf.setLength(buf.length() - 1);
- String configId = buf.toString();
- int warnings = specificDef.getWarnings(defaultProviders, 0);
- addWarningSwitch(args, warnings);
- Enumeration argEnum = cmdArgs.elements();
- int endCount = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum
- .nextElement();
- switch (arg.getLocation()) {
- case 1 :
- args.addElement(arg.getValue());
- break;
- case 2 :
- endCount++;
- break;
- }
- }
- String[] endArgs = new String[endCount];
- argEnum = cmdArgs.elements();
- int index = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum
- .nextElement();
- if (arg.getLocation() == 2) {
- endArgs[index++] = arg.getValue();
- }
- }
- String[] argArray = new String[args.size()];
- args.copyInto(argArray);
- boolean rebuild = specificDef.getRebuild(baseDefs, 0);
- File[] envIncludePath = getEnvironmentIncludePath();
- return new CommandLineCompilerConfiguration(this, configId, incPath,
- sysIncPath, envIncludePath, includePathIdentifier.toString(),
- argArray, paramArray, rebuild, endArgs);
- }
- protected int getArgumentCountPerInputFile() {
- return 1;
- }
- protected final String getCommand() {
- return command;
- }
- abstract protected void getDefineSwitch(StringBuffer buffer, String define,
- String value);
- protected abstract File[] getEnvironmentIncludePath();
- public String getIdentifier() {
- if (identifier == null) {
- if (identifierArg == null) {
- identifier = getIdentifier(new String[]{command}, command);
- } else {
- identifier = getIdentifier(
- new String[]{command, identifierArg}, command);
- }
- }
- return identifier;
- }
- abstract protected String getIncludeDirSwitch(String source);
- protected String getInputFileArgument(File outputDir, String filename,
- int index) {
- //
- // if there is an embedded space,
- // must enclose in quotes
- if (filename.indexOf(' ') >= 0) {
- StringBuffer buf = new StringBuffer("\"");
- buf.append(filename);
- buf.append("\"");
- return buf.toString();
- }
- return filename;
- }
- protected final boolean getLibtool() {
- return libtool;
- }
- /**
- * Obtains the same compiler, but with libtool set
- *
- * Default behavior is to ignore libtool
- */
- public final CommandLineCompiler getLibtoolCompiler() {
- if (libtoolCompiler != null) {
- return libtoolCompiler;
- }
- return this;
- }
- abstract public int getMaximumCommandLength();
- protected int getMaximumInputFilesPerCommand() {
- return Integer.MAX_VALUE;
- }
- protected int getTotalArgumentLengthForInputFile(File outputDir,
- String inputFile) {
- return inputFile.length() + 1;
- }
- abstract protected void getUndefineSwitch(StringBuffer buffer, String define);
- /**
- * This method is exposed so test classes can overload and test the
- * arguments without actually spawning the compiler
- */
- protected int runCommand(CCTask task, File workingDir, String[] cmdline)
- throws BuildException {
- return CUtil.runCommand(task, workingDir, cmdline, newEnvironment, env);
- }
- protected final void setCommand(String command) {
- this.command = command;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java deleted file mode 100644 index 4c53df105b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineCompilerConfiguration.java +++ /dev/null @@ -1,216 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CompilerParam;
-import net.sf.antcontrib.cpptasks.DependencyInfo;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-
-import org.apache.tools.ant.BuildException;
-/**
- * A configuration for a C++ compiler
- *
- * @author Curt Arnold
- */
-public final class CommandLineCompilerConfiguration
- implements
- CompilerConfiguration {
- private/* final */String[] args;
- private/* final */CommandLineCompiler compiler;
- private String[] endArgs;
- //
- // include path from environment variable not
- // explicitly stated in Ant script
- private/* final */File[] envIncludePath;
- private String[] exceptFiles;
- private/* final */String identifier;
- private/* final */File[] includePath;
- private/* final */String includePathIdentifier;
- private boolean isPrecompiledHeaderGeneration;
- private/* final */ProcessorParam[] params;
- private/* final */boolean rebuild;
- private/* final */File[] sysIncludePath;
- public CommandLineCompilerConfiguration(CommandLineCompiler compiler,
- String identifier, File[] includePath, File[] sysIncludePath,
- File[] envIncludePath, String includePathIdentifier, String[] args,
- ProcessorParam[] params, boolean rebuild, String[] endArgs) {
- if (compiler == null) {
- throw new NullPointerException("compiler");
- }
- if (identifier == null) {
- throw new NullPointerException("identifier");
- }
- if (includePathIdentifier == null) {
- throw new NullPointerException("includePathIdentifier");
- }
- if (args == null) {
- this.args = new String[0];
- } else {
- this.args = (String[]) args.clone();
- }
- if (includePath == null) {
- this.includePath = new File[0];
- } else {
- this.includePath = (File[]) includePath.clone();
- }
- if (sysIncludePath == null) {
- this.sysIncludePath = new File[0];
- } else {
- this.sysIncludePath = (File[]) sysIncludePath.clone();
- }
- if (envIncludePath == null) {
- this.envIncludePath = new File[0];
- } else {
- this.envIncludePath = (File[]) envIncludePath.clone();
- }
- this.compiler = compiler;
- this.params = (ProcessorParam[]) params.clone();
- this.rebuild = rebuild;
- this.identifier = identifier;
- this.includePathIdentifier = includePathIdentifier;
- this.endArgs = (String[]) endArgs.clone();
- exceptFiles = null;
- isPrecompiledHeaderGeneration = false;
- }
- public CommandLineCompilerConfiguration(
- CommandLineCompilerConfiguration base, String[] additionalArgs,
- String[] exceptFiles, boolean isPrecompileHeaderGeneration) {
- compiler = base.compiler;
- identifier = base.identifier;
- rebuild = base.rebuild;
- includePath = (File[]) base.includePath.clone();
- sysIncludePath = (File[]) base.sysIncludePath.clone();
- endArgs = (String[]) base.endArgs.clone();
- envIncludePath = (File[]) base.envIncludePath.clone();
- includePathIdentifier = base.includePathIdentifier;
- if (exceptFiles != null) {
- this.exceptFiles = (String[]) exceptFiles.clone();
- }
- this.isPrecompiledHeaderGeneration = isPrecompileHeaderGeneration;
- args = new String[base.args.length + additionalArgs.length];
- for (int i = 0; i < base.args.length; i++) {
- args[i] = base.args[i];
- }
- int index = base.args.length;
- for (int i = 0; i < additionalArgs.length; i++) {
- args[index++] = additionalArgs[i];
- }
- }
- public int bid(String inputFile) {
- int compilerBid = compiler.bid(inputFile);
- if (compilerBid > 0 && exceptFiles != null) {
- for (int i = 0; i < exceptFiles.length; i++) {
- if (inputFile.equals(exceptFiles[i])) {
- return 0;
- }
- }
- }
- return compilerBid;
- }
- public void compile(CCTask task, File outputDir, String[] sourceFiles,
- boolean relentless, ProgressMonitor monitor) throws BuildException {
- if (monitor != null) {
- monitor.start(this);
- }
- try {
- compiler.compile(task, outputDir, sourceFiles, args, endArgs,
- relentless, this, monitor);
- if (monitor != null) {
- monitor.finish(this, true);
- }
- } catch (BuildException ex) {
- if (monitor != null) {
- monitor.finish(this, false);
- }
- throw ex;
- }
- }
- /**
- *
- * This method may be used to get two distinct compiler configurations, one
- * for compiling the specified file and producing a precompiled header
- * file, and a second for compiling other files using the precompiled
- * header file.
- *
- * The last (preferrably only) include directive in the prototype file will
- * be used to mark the boundary between pre-compiled and normally compiled
- * headers.
- *
- * @param prototype
- * A source file (for example, stdafx.cpp) that is used to build
- * the precompiled header file. @returns null if precompiled
- * headers are not supported or a two element array containing
- * the precompiled header generation configuration and the
- * consuming configuration
- *
- */
- public CompilerConfiguration[] createPrecompileConfigurations(
- File prototype, String[] nonPrecompiledFiles) {
- if (compiler instanceof PrecompilingCompiler) {
- return ((PrecompilingCompiler) compiler)
- .createPrecompileConfigurations(this, prototype,
- nonPrecompiledFiles);
- }
- return null;
- }
- /**
- * Returns a string representation of this configuration. Should be
- * canonical so that equivalent configurations will have equivalent string
- * representations
- */
- public String getIdentifier() {
- return identifier;
- }
- public String getIncludePathIdentifier() {
- return includePathIdentifier;
- }
- public String getOutputFileName(String inputFile) {
- return compiler.getOutputFileName(inputFile);
- }
- public CompilerParam getParam(String name) {
- for (int i = 0; i < params.length; i++) {
- if (name.equals(params[i].getName()))
- return (CompilerParam) params[i];
- }
- return null;
- }
- public ProcessorParam[] getParams() {
- return params;
- }
- public boolean getRebuild() {
- return rebuild;
- }
- public boolean isPrecompileGeneration() {
- return isPrecompiledHeaderGeneration;
- }
- public DependencyInfo parseIncludes(CCTask task, File baseDir, File source) {
- return compiler.parseIncludes(task, source, includePath,
- sysIncludePath, envIncludePath, baseDir,
- getIncludePathIdentifier());
- }
- public String toString() {
- return identifier;
- }
- public String[] getPreArguments() {
- return (String[]) args.clone();
- }
- public String[] getEndArguments() {
- return (String[]) endArgs.clone();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java deleted file mode 100644 index d01cb9e356..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineFortranCompiler.java +++ /dev/null @@ -1,42 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.parser.FortranParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * An abstract Compiler implementation which uses an external program to
- * perform the compile.
- *
- * @author Curt Arnold
- */
-public abstract class CommandLineFortranCompiler extends CommandLineCompiler {
- protected CommandLineFortranCompiler(String command, String identifierArg,
- String[] sourceExtensions, String[] headerExtensions,
- String outputSuffix, boolean libtool,
- CommandLineFortranCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super(command, identifierArg, sourceExtensions, headerExtensions,
- outputSuffix, libtool, libtoolCompiler, newEnvironment, env);
- }
- protected Parser createParser(File source) {
- return new FortranParser();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java deleted file mode 100644 index 4161469a8f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java +++ /dev/null @@ -1,404 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.LinkerDef;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.TargetDef;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-
-
-/**
- * An abstract Linker implementation that performs the link via an external
- * command.
- *
- * @author Adam Murdoch
- */
-public abstract class CommandLineLinker extends AbstractLinker
-{
- private String command;
- private Environment env = null;
- private String identifier;
- private String identifierArg;
- private boolean isLibtool;
- private String[] librarySets;
- private CommandLineLinker libtoolLinker;
- private boolean newEnvironment = false;
- private String outputSuffix;
-
-
- /** Creates a comand line linker invocation */
- public CommandLineLinker(String command,
- String identifierArg,
- String[] extensions,
- String[] ignoredExtensions, String outputSuffix,
- boolean isLibtool, CommandLineLinker libtoolLinker)
- {
- super(extensions, ignoredExtensions);
- this.command = command;
- this.identifierArg = identifierArg;
- this.outputSuffix = outputSuffix;
- this.isLibtool = isLibtool;
- this.libtoolLinker = libtoolLinker;
- }
- protected abstract void addBase(long base, Vector args);
-
- protected abstract void addFixed(Boolean fixed, Vector args);
-
- abstract protected void addImpliedArgs(boolean debug,
- LinkType linkType, Vector args, Boolean defaultflag);
- protected abstract void addIncremental(boolean incremental, Vector args);
-
- //
- // Windows processors handle these through file list
- //
- protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets, Vector preargs,
- Vector midargs, Vector endargs) {
- return null;
- }
- protected abstract void addMap(boolean map, Vector args);
- protected abstract void addStack(int stack, Vector args);
- protected abstract void addEntry(String entry, Vector args);
-
- protected LinkerConfiguration createConfiguration(
- CCTask task,
- LinkType linkType,
- ProcessorDef[] baseDefs, LinkerDef specificDef, TargetDef targetPlatform) {
-
- Vector preargs = new Vector();
- Vector midargs = new Vector();
- Vector endargs = new Vector();
- Vector[] args = new Vector[] { preargs, midargs, endargs };
-
- LinkerDef[] defaultProviders = new LinkerDef[baseDefs.length+1];
- defaultProviders[0] = specificDef;
- for(int i = 0; i < baseDefs.length; i++) {
- defaultProviders[i+1] = (LinkerDef) baseDefs[i];
- }
- //
- // add command line arguments inherited from <cc> element
- // any "extends" and finally the specific CompilerDef
- CommandLineArgument[] commandArgs;
- for(int i = defaultProviders.length-1; i >= 0; i--) {
- commandArgs = defaultProviders[i].getActiveProcessorArgs();
- for(int j = 0; j < commandArgs.length; j++) {
- args[commandArgs[j].getLocation()].
- addElement(commandArgs[j].getValue());
- }
- }
-
- Vector params = new Vector();
- //
- // add command line arguments inherited from <cc> element
- // any "extends" and finally the specific CompilerDef
- ProcessorParam[] paramArray;
- for (int i = defaultProviders.length - 1; i >= 0; i--) {
- paramArray = defaultProviders[i].getActiveProcessorParams();
- for (int j = 0; j < paramArray.length; j++) {
- params.add(paramArray[j]);
- }
- }
-
- paramArray = (ProcessorParam[])(params.toArray(new ProcessorParam[params.size()]));
-
- boolean debug = specificDef.getDebug(baseDefs,0);
-
-
- String startupObject = getStartupObject(linkType);
- Boolean defaultflag = specificDef.getDefaultflag(defaultProviders, 1);
- addImpliedArgs(debug, linkType, preargs, defaultflag);
- addIncremental(specificDef.getIncremental(defaultProviders,1), preargs);
- addFixed(specificDef.getFixed(defaultProviders,1), preargs);
- addMap(specificDef.getMap(defaultProviders,1), preargs);
- addBase(specificDef.getBase(defaultProviders,1), preargs);
- addStack(specificDef.getStack(defaultProviders,1), preargs);
- addEntry(specificDef.getEntry(defaultProviders, 1), preargs);
-
- String[] libnames = null;
- LibrarySet[] libsets = specificDef.getActiveLibrarySets(defaultProviders,1);
- if (libsets.length > 0) {
- libnames = addLibrarySets(task, libsets, preargs, midargs, endargs);
- }
-
- StringBuffer buf = new StringBuffer(getIdentifier());
- for (int i = 0; i < 3; i++) {
- Enumeration argenum = args[i].elements();
- while (argenum.hasMoreElements()) {
- buf.append(' ');
- buf.append(argenum.nextElement().toString());
- }
- }
- String configId = buf.toString();
-
- String[][] options = new String[][] {
- new String[args[0].size() + args[1].size()],
- new String[args[2].size()] };
- args[0].copyInto(options[0]);
- int offset = args[0].size();
- for (int i = 0; i < args[1].size(); i++) {
- options[0][i+offset] = (String) args[1].elementAt(i);
- }
- args[2].copyInto(options[1]);
-
-
- boolean rebuild = specificDef.getRebuild(baseDefs,0);
- boolean map = specificDef.getMap(defaultProviders,1);
-
- //task.log("libnames:"+libnames.length, Project.MSG_VERBOSE);
- return new CommandLineLinkerConfiguration(this,configId,options,
- paramArray,
- rebuild,map,libnames, startupObject);
- }
-
- /**
- * Allows drived linker to decorate linker option.
- * Override by GccLinker to prepend a "-Wl," to
- * pass option to through gcc to linker.
- *
- * @param buf buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg linker argument
- */
- protected String decorateLinkerOption(StringBuffer buf, String arg) {
- return arg;
- }
-
- protected final String getCommand() {
- return command;
- }
- protected abstract String getCommandFileSwitch(String commandFile);
-
-
- public String getIdentifier() {
- if(identifier == null) {
- if (identifierArg == null) {
- identifier = getIdentifier(new String[] { command }, command);
- } else {
- identifier = getIdentifier(new String[] { command, identifierArg },
- command);
- }
- }
- return identifier;
- }
- public final CommandLineLinker getLibtoolLinker() {
- if (libtoolLinker != null) {
- return libtoolLinker;
- }
- return this;
- }
- protected abstract int getMaximumCommandLength();
-
- public String getOutputFileName(String baseName) {
- return baseName + outputSuffix;
- }
-
- protected String[] getOutputFileSwitch(CCTask task, String outputFile) {
- return getOutputFileSwitch(outputFile);
- }
- protected abstract String[] getOutputFileSwitch(String outputFile);
- protected String getStartupObject(LinkType linkType) {
- return null;
- }
-
- /**
- * Performs a link using a command line linker
- *
- */
- public void link(CCTask task,
- File outputFile,
- String[] sourceFiles,
- CommandLineLinkerConfiguration config)
- throws BuildException
- {
- File parentDir = new File(outputFile.getParent());
- String parentPath;
- try {
- parentPath = parentDir.getCanonicalPath();
- } catch(IOException ex) {
- parentPath = parentDir.getAbsolutePath();
- }
- String[] execArgs = prepareArguments(task, parentPath,outputFile.getName(),
- sourceFiles, config);
- int commandLength = 0;
- for(int i = 0; i < execArgs.length; i++) {
- commandLength += execArgs[i].length() + 1;
- }
-
- //
- // if command length exceeds maximum
- // (1024 for Windows) then create a temporary
- // file containing everything but the command name
- if(commandLength >= this.getMaximumCommandLength()) {
- try {
- execArgs = prepareResponseFile(outputFile,execArgs);
- }
- catch(IOException ex) {
- throw new BuildException(ex);
- }
- }
-
- int retval = runCommand(task,parentDir,execArgs);
- //
- // if the process returned a failure code then
- // throw an BuildException
- //
- if(retval != 0) {
- //
- // construct the exception
- //
- throw new BuildException(this.getCommand() + " failed with return code " + retval, task.getLocation());
- }
-
- }
-
-
- /**
- * Prepares argument list for exec command. Will return null
- * if command line would exceed allowable command line buffer.
- *
- * @param outputFile linker output file
- * @param sourceFiles linker input files (.obj, .o, .res)
- * @param args linker arguments
- * @return arguments for runTask
- */
- protected String[] prepareArguments(
- CCTask task,
- String outputDir,
- String outputFile,
- String[] sourceFiles,
- CommandLineLinkerConfiguration config) {
-
- String[] preargs = config.getPreArguments();
- String[] endargs = config.getEndArguments();
- String outputSwitch[] = getOutputFileSwitch(task, outputFile);
- int allArgsCount = preargs.length + 1 + outputSwitch.length +
- sourceFiles.length + endargs.length;
- if (isLibtool) {
- allArgsCount++;
- }
- String[] allArgs = new String[allArgsCount];
- int index = 0;
- if (isLibtool) {
- allArgs[index++] = "libtool";
- }
- allArgs[index++] = this.getCommand();
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < preargs.length; i++) {
- allArgs[index++] = decorateLinkerOption(buf, preargs[i]);
- }
- for (int i = 0; i < outputSwitch.length; i++) {
- allArgs[index++] = outputSwitch[i];
- }
- for (int i = 0; i < sourceFiles.length; i++) {
- allArgs[index++] = prepareFilename(buf,outputDir,sourceFiles[i]);
- }
- for (int i = 0; i < endargs.length; i++) {
- allArgs[index++] = decorateLinkerOption(buf, endargs[i]);
- }
- return allArgs;
- }
-
- /**
- * Processes filename into argument form
- *
- */
- protected String prepareFilename(StringBuffer buf,
- String outputDir, String sourceFile) {
- String relativePath = CUtil.getRelativePath(outputDir,
- new File(sourceFile));
- return quoteFilename(buf,relativePath);
- }
-
- /**
- * Prepares argument list to execute the linker using a
- * response file.
- *
- * @param outputFile linker output file
- * @param args output of prepareArguments
- * @return arguments for runTask
- */
- protected String[] prepareResponseFile(File outputFile,String[] args) throws IOException
- {
- String baseName = outputFile.getName();
- File commandFile = new File(outputFile.getParent(),baseName + ".rsp");
- FileWriter writer = new FileWriter(commandFile);
- int execArgCount = 1;
- if (isLibtool) {
- execArgCount++;
- }
- String[] execArgs = new String[execArgCount+1];
- for (int i = 0; i < execArgCount; i++) {
- execArgs[i] = args[i];
- }
- execArgs[execArgCount] = getCommandFileSwitch(commandFile.toString());
- for(int i = execArgCount; i < args.length; i++) {
- //
- // if embedded space and not quoted then
- // quote argument
- if (args[i].indexOf(" ") >= 0 && args[i].charAt(0) != '\"') {
- writer.write('\"');
- writer.write(args[i]);
- writer.write("\"\n");
- } else {
- writer.write(args[i]);
- writer.write('\n');
- }
- }
- writer.close();
- return execArgs;
- }
-
-
- protected String quoteFilename(StringBuffer buf,String filename) {
- if(filename.indexOf(' ') >= 0) {
- buf.setLength(0);
- buf.append('\"');
- buf.append(filename);
- buf.append('\"');
- return buf.toString();
- }
- return filename;
- }
-
- /**
- * This method is exposed so test classes can overload
- * and test the arguments without actually spawning the
- * compiler
- */
- protected int runCommand(CCTask task, File workingDir,String[] cmdline)
- throws BuildException {
- return CUtil.runCommand(task,workingDir,cmdline, newEnvironment, env);
- }
-
- protected final void setCommand(String command) {
- this.command = command;
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java deleted file mode 100644 index b3a7290b00..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CommandLineLinkerConfiguration.java +++ /dev/null @@ -1,119 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.LinkerParam;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-import net.sf.antcontrib.cpptasks.TargetInfo;
-
-import org.apache.tools.ant.BuildException;
-/**
- * A configuration for a command line linker
- *
- * @author Curt Arnold
- */
-public final class CommandLineLinkerConfiguration
- implements
- LinkerConfiguration {
- private/* final */String[][] args;
- private/* final */String identifier;
- private String[] libraryNames;
- private/* final */CommandLineLinker linker;
- private/* final */boolean map;
- private/* final */ProcessorParam[] params;
- private/* final */boolean rebuild;
- private String startupObject;
- public CommandLineLinkerConfiguration(CommandLineLinker linker,
- String identifier, String[][] args, ProcessorParam[] params,
- boolean rebuild, boolean map, String[] libraryNames,
- String startupObject) {
- if (linker == null) {
- throw new NullPointerException("linker");
- }
- if (args == null) {
- throw new NullPointerException("args");
- } else {
- this.args = (String[][]) args.clone();
- }
- this.linker = linker;
- this.params = (ProcessorParam[]) params.clone();
- this.rebuild = rebuild;
- this.identifier = identifier;
- this.map = map;
- if (libraryNames == null) {
- this.libraryNames = new String[0];
- } else {
- this.libraryNames = (String[]) libraryNames.clone();
- }
- this.startupObject = startupObject;
- }
- public int bid(String filename) {
- return linker.bid(filename);
- }
- public String[] getEndArguments() {
- String[] clone = (String[]) args[1].clone();
- return clone;
- }
- /**
- * Returns a string representation of this configuration. Should be
- * canonical so that equivalent configurations will have equivalent string
- * representations
- */
- public String getIdentifier() {
- return identifier;
- }
- public String[] getLibraryNames() {
- String[] clone = (String[]) libraryNames.clone();
- return clone;
- }
- public boolean getMap() {
- return map;
- }
- public String getOutputFileName(String inputFile) {
- return linker.getOutputFileName(inputFile);
- }
- public LinkerParam getParam(String name) {
- for (int i = 0; i < params.length; i++) {
- if (name.equals(params[i].getName()))
- return (LinkerParam) params[i];
- }
- return null;
- }
- public ProcessorParam[] getParams() {
- return params;
- }
- public String[] getPreArguments() {
- String[] clone = (String[]) args[0].clone();
- return clone;
- }
- public boolean getRebuild() {
- return rebuild;
- }
- public String getStartupObject() {
- return startupObject;
- }
- public void link(CCTask task, TargetInfo linkTarget) throws BuildException {
- //
- // AllSourcePath's include any syslibsets
- //
- String[] sourcePaths = linkTarget.getAllSourcePaths();
- linker.link(task, linkTarget.getOutput(), sourcePaths, this);
- }
- public String toString() {
- return identifier;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java deleted file mode 100644 index bbb6c99c5d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Compiler.java +++ /dev/null @@ -1,24 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-/**
- * A compiler.
- *
- * @author Adam Murdoch
- */
-public interface Compiler extends Processor {
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java deleted file mode 100644 index 72abb8b5f4..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/CompilerConfiguration.java +++ /dev/null @@ -1,64 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CompilerParam;
-import net.sf.antcontrib.cpptasks.DependencyInfo;
-
-import org.apache.tools.ant.BuildException;
-/**
- * A configuration for a compiler
- *
- * @author Curt Arnold
- */
-public interface CompilerConfiguration extends ProcessorConfiguration {
- void compile(CCTask task, File outputDir, String[] sourceFiles,
- boolean relentless, ProgressMonitor monitor) throws BuildException;
- /**
- *
- * This method may be used to get two distinct compiler configurations, one
- * for compiling the specified file and producing a precompiled header
- * file, and a second for compiling other files using the precompiled
- * header file.
- *
- * The last (preferrably only) include directive in the prototype file will
- * be used to mark the boundary between pre-compiled and normally compiled
- * headers.
- *
- * @param prototype
- * A source file (for example, stdafx.cpp) that is used to build
- * the precompiled header file. @returns null if precompiled
- * headers are not supported or a two element array containing
- * the precompiled header generation configuration and the
- * consuming configuration
- *
- */
- CompilerConfiguration[] createPrecompileConfigurations(File prototype,
- String[] nonPrecompiledFiles);
- /**
- * Returns an digest for the include path for the configuration.
- *
- * This is used to determine if cached dependency information is invalid
- * because the include paths have changed
- */
- String getIncludePathIdentifier();
- public CompilerParam getParam(String name);
- boolean isPrecompileGeneration();
- DependencyInfo parseIncludes(CCTask task, File baseDir, File source);
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java deleted file mode 100644 index 7d6041ff93..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkType.java +++ /dev/null @@ -1,134 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import net.sf.antcontrib.cpptasks.OutputTypeEnum;
-import net.sf.antcontrib.cpptasks.SubsystemEnum;
-/**
- * This class represents the target platform for the compile and link step. The
- * name is an anachronism and should be changed.
- *
- * @author Curt Arnold
- */
-public class LinkType {
- private OutputTypeEnum outputType = new OutputTypeEnum();
- private boolean staticRuntime = false;
- private SubsystemEnum subsystem = new SubsystemEnum();
- /**
- * Constructor
- *
- * By default, an gui executable with a dynamically linked runtime
- *
- */
- public LinkType() {
- }
- /**
- * Gets whether the link should produce an executable
- *
- * @return boolean
- */
- public boolean isExecutable() {
- String value = outputType.getValue();
- return value.equals("executable");
- }
- /**
- * Gets whether the link should produce a plugin module.
- *
- * @return boolean
- */
- public boolean isPluginModule() {
- String value = outputType.getValue();
- return value.equals("plugin");
- }
- /**
- * Gets whether the link should produce a shared library.
- *
- * @return boolean
- */
- public boolean isSharedLibrary() {
- String value = outputType.getValue();
- return value.equals("shared") || value.equals("plugin");
- }
- /**
- * Gets whether the link should produce a static library.
- *
- * @return boolean
- */
- public boolean isStaticLibrary() {
- String value = outputType.getValue();
- return value.equals("static");
- }
- /**
- * Gets whether the module should use a statically linked runtime library.
- *
- * @return boolean
- */
- public boolean isStaticRuntime() {
- return staticRuntime;
- }
- /**
- * Gets whether the link should produce a module for a console subsystem.
- *
- * @return boolean
- */
- public boolean isSubsystemConsole() {
- String value = subsystem.getValue();
- return value.equals("console");
- }
- /**
- * Gets whether the link should produce a module for a graphical user
- * interface subsystem.
- *
- * @return boolean
- */
- public boolean isSubsystemGUI() {
- String value = subsystem.getValue();
- return value.equals("gui");
- }
- /**
- * Sets the output type (execuable, shared, etc).
- *
- * @param outputType,
- * may not be null
- */
- public void setOutputType(OutputTypeEnum outputType) {
- if (outputType == null) {
- throw new IllegalArgumentException("outputType");
- }
- this.outputType = outputType;
- }
- /**
- * Requests use of a static runtime library.
- *
- * @param staticRuntime
- * if true, use static runtime library if possible.
- */
- public void setStaticRuntime(boolean staticRuntime) {
- this.staticRuntime = staticRuntime;
- }
- /**
- * Sets the subsystem (gui, console, etc).
- *
- * @param subsystem
- * subsystem, may not be null
- */
- public void setSubsystem(SubsystemEnum subsystem) {
- if (subsystem == null) {
- throw new IllegalArgumentException("subsystem");
- }
- this.subsystem = subsystem;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java deleted file mode 100644 index 776a808ac7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Linker.java +++ /dev/null @@ -1,57 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-/**
- * A linker for executables, and static and dynamic libraries.
- *
- * @author Adam Murdoch
- */
-public interface Linker extends Processor {
- /**
- * Extracts the significant part of a library name to ensure there aren't
- * collisions
- */
- String getLibraryKey(File libname);
- /**
- * returns the library path for the linker
- */
- File[] getLibraryPath();
- /**
- * 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.
- *
- * @param libnames
- * array of library names
- */
- String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libraryType);
- /**
- * Gets the linker for the specified link type.
- *
- * @return appropriate linker or null, will return this if this linker can
- * handle the specified link type
- */
- Linker getLinker(LinkType linkType);
- /**
- * Returns true if the linker is case-sensitive
- */
- boolean isCaseSensitive();
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java deleted file mode 100644 index c2d62c4137..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/LinkerConfiguration.java +++ /dev/null @@ -1,31 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.LinkerParam;
-import net.sf.antcontrib.cpptasks.TargetInfo;
-
-import org.apache.tools.ant.BuildException;
-/**
- * A configuration for a linker
- *
- * @author Curt Arnold
- */
-public interface LinkerConfiguration extends ProcessorConfiguration {
- public LinkerParam getParam(String name);
- void link(CCTask task, TargetInfo linkTarget) throws BuildException;
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java deleted file mode 100644 index eb64119299..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCCompiler.java +++ /dev/null @@ -1,43 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * A command line C compiler that can utilize precompilation of header files
- *
- * @author Curt Arnold
- */
-public abstract class PrecompilingCommandLineCCompiler
- extends
- PrecompilingCommandLineCompiler {
- protected PrecompilingCommandLineCCompiler(String command,
- String identifierArg, String[] sourceExtensions,
- String[] headerExtensions, String outputSuffix, boolean libtool,
- PrecompilingCommandLineCCompiler libtoolCompiler,
- boolean newEnvironment, Environment env) {
- super(command, identifierArg, sourceExtensions, headerExtensions,
- outputSuffix, libtool, libtoolCompiler, newEnvironment, env);
- }
- protected Parser createParser(File source) {
- return new CParser();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java deleted file mode 100644 index 6e3c145675..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCommandLineCompiler.java +++ /dev/null @@ -1,104 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-
-import net.sf.antcontrib.cpptasks.parser.Parser;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-/**
- * A command line C compiler that can utilize precompilation of header files
- *
- * @author Curt Arnold
- */
-public abstract class PrecompilingCommandLineCompiler
- extends
- CommandLineCompiler implements PrecompilingCompiler {
- protected PrecompilingCommandLineCompiler(String command,
- String identifierArg, String[] sourceExtensions,
- String[] headerExtensions, String outputSuffix, boolean libtool,
- PrecompilingCommandLineCompiler libtoolCompiler,
- boolean newEnvironment, Environment env) {
- super(command, identifierArg, sourceExtensions, headerExtensions,
- outputSuffix, libtool, libtoolCompiler, newEnvironment, env);
- }
- /**
- *
- * This method may be used to get two distinct compiler configurations, one
- * for compiling the specified file and producing a precompiled header
- * file, and a second for compiling other files using the precompiled
- * header file.
- *
- * The last (preferrably only) include directive in the prototype file will
- * be used to mark the boundary between pre-compiled and normally compiled
- * headers.
- *
- * @param config
- * base configuration
- * @param prototype
- * A source file (for example, stdafx.cpp) that is used to build
- * the precompiled header file. @returns null if precompiled
- * headers are not supported or a two element array containing
- * the precompiled header generation configuration and the
- * consuming configuration
- *
- */
- public CompilerConfiguration[] createPrecompileConfigurations(
- CompilerConfiguration config, File prototype, String[] exceptFiles) {
- //
- // cast should success or someone is passing us a configuration
- // that was prepared by another processor
- //
- CommandLineCompilerConfiguration cmdLineConfig = (CommandLineCompilerConfiguration) config;
- //
- // parse prototype file to determine last header
- //
- Parser parser = createParser(prototype);
- String[] includes;
- try {
- Reader reader = new BufferedReader(new FileReader(prototype));
- parser.parse(reader);
- includes = parser.getIncludes();
- } catch (IOException ex) {
- throw new BuildException(
- "Error parsing precompiled header protoype: "
- + prototype.toString() + ":" + ex.toString());
- }
- if (includes.length == 0) {
- throw new BuildException("Precompiled header prototype: "
- + prototype.toString()
- + " does not contain any include directives.");
- }
- CompilerConfiguration[] configs = new CompilerConfiguration[2];
- configs[0] = createPrecompileGeneratingConfig(cmdLineConfig, prototype,
- includes[0]);
- configs[1] = createPrecompileUsingConfig(cmdLineConfig, prototype,
- includes[0], exceptFiles);
- return configs;
- }
- abstract protected CompilerConfiguration createPrecompileGeneratingConfig(
- CommandLineCompilerConfiguration baseConfig, File prototype,
- String lastInclude);
- abstract protected CompilerConfiguration createPrecompileUsingConfig(
- CommandLineCompilerConfiguration baseConfig, File prototype,
- String lastInclude, String[] exceptFiles);
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java deleted file mode 100644 index e60b1da8e6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/PrecompilingCompiler.java +++ /dev/null @@ -1,49 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import java.io.File;
-/**
- * A compiler that can utilize precompilation of header files
- *
- * @author Curt Arnold
- */
-public interface PrecompilingCompiler {
- /**
- *
- * This method may be used to get two distinct compiler configurations, one
- * for compiling the specified file and producing a precompiled header
- * file, and a second for compiling other files using the precompiled
- * header file.
- *
- * The last (preferrably only) include directive in the prototype file will
- * be used to mark the boundary between pre-compiled and normally compiled
- * headers.
- *
- * @param config
- * base configuration
- * @param prototype
- * A source file (for example, stdafx.cpp) that is used to build
- * the precompiled header file. @returns null if precompiled
- * headers are not supported or a two element array containing
- * the precompiled header generation configuration and the
- * consuming configuration
- *
- */
- CompilerConfiguration[] createPrecompileConfigurations(
- CompilerConfiguration config, File prototype,
- String[] nonPrecompiledFiles);
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java deleted file mode 100644 index 6fb74e9ea3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/Processor.java +++ /dev/null @@ -1,73 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.TargetDef;
-import org.apache.tools.ant.types.Environment;
-/**
- * A processor. Base interface for Compiler and Linker
- *
- * @author Curt Arnold
- */
-public interface Processor {
- /**
- * Returns a bid indicating the desire of this compiler to process the
- * file.
- *
- * @param inputFile
- * input file
- * @return 0 = no interest, 100 = high interest
- */
- int bid(String inputFile);
- Processor changeEnvironment(boolean newEnvironment, Environment env);
- /**
- * Returns the compiler configuration for <cc>or <compiler>element.
- *
- * @param defaultProviders
- * When specificConfig corresponds to a <compiler>or linker
- * element, defaultProvider will be a zero to two element array.
- * If there is an extends attribute, the first element will be
- * the referenced ProcessorDef, unless inherit = false, the last
- * element will be the containing <cc>element
- * @param specificConfig
- * A <cc>or <compiler>element.
- * @return resulting configuration
- */
- ProcessorConfiguration createConfiguration(CCTask task, LinkType linkType,
- ProcessorDef[] defaultProviders, ProcessorDef specificConfig,
- TargetDef targetPlatform);
- /**
- * Retrieve an identifier that identifies the specific version of the
- * compiler. Compilers with the same identifier should produce the same
- * output files for the same input files and command line switches.
- */
- String getIdentifier();
- /**
- * Gets the linker that is associated with this processors
- */
- Linker getLinker(LinkType type);
- /**
- * Output file name (no path components) corresponding to source file
- *
- * @param inputFile
- * input file
- * @return output file name or null if no output file or name not
- * determined by input file
- */
- String getOutputFileName(String inputFile);
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java deleted file mode 100644 index dd75483d6d..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProcessorConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-import net.sf.antcontrib.cpptasks.ProcessorParam;
-/**
- * A configuration for a C++ compiler, linker or other processor
- *
- * @author Curt Arnold
- */
-public interface ProcessorConfiguration {
- /**
- * An indication of how much this compiler would like to process this file
- *
- * @return 0 is no interest to process, 100 is strong interest to process
- */
- int bid(String filename);
- /**
- * Returns a string representation of this configuration. Should be
- * canonical so that equivalent configurations will have equivalent string
- * representations
- */
- String getIdentifier();
- /**
- * Output file name (no path components) corresponding to source file
- *
- * @param inputFile
- * input file
- * @return output file name or null if no output file or name not
- * determined by input file
- */
- String getOutputFileName(String inputFile);
- ProcessorParam[] getParams();
- /**
- * If true, all files using this configuration should be rebuilt and any
- * existing output files should be ignored
- */
- boolean getRebuild();
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java deleted file mode 100644 index 2206ed874e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/compiler/ProgressMonitor.java +++ /dev/null @@ -1,31 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.compiler;
-/**
- * Interface to receive notification of compile progress
- *
- * @author Curt Arnold
- */
-public interface ProgressMonitor {
- public void finish(ProcessorConfiguration config, boolean normal);
- /**
- * Called to notify monitor of progress
- *
- */
- void progress(String[] sources);
- public void start(ProcessorConfiguration config);
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java deleted file mode 100644 index f0be5945a3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAslcompiler.java +++ /dev/null @@ -1,70 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineAslcompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-
-/**
- * Adaptor for Microsoft ASL compiler.
- *
- */
-public final class DevStudioAslcompiler extends CommandLineAslcompiler {
- private final static String[] sourceExtensions = new String[] { ".asl" };
-
- private final static String[] headerExtensions = new String[] {};
-
- private final static String[] defaultflags = new String[] {};
-
- private static final DevStudioAslcompiler instance = new DevStudioAslcompiler(
- "asl", sourceExtensions, headerExtensions, false);
-
- /**
- * Gets asl adapter
- */
- public static DevStudioAslcompiler getInstance() {
- return instance;
- }
-
- /**
- * Private constructor. Use DevStudioAslcompiler.getInstance() to get
- * singleton instance of this class.
- */
- private DevStudioAslcompiler (String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool) {
- super(command, null, sourceExtensions, headerExtensions, ".aml");
- }
-
- public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) {
- if (defaultflag != null && defaultflag.booleanValue()) {
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- }
-
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-
- public Linker getLinker(LinkType linkType) {
- return DevStudioLinker.getInstance().getLinker(linkType);
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java deleted file mode 100644 index 23d319ecd9..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioAssembler.java +++ /dev/null @@ -1,84 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineAssembler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-
-/**
- * Adaptor for Microsoft MASM
- *
- */
-public final class DevStudioAssembler extends CommandLineAssembler {
- private final static String[] sourceExtensions = new String[] { ".asm" };
-
- private final static String[] headerExtensions = new String[] { ".h",
- ".inc" };
-
- private final static String[] defaultflags = new String[] { "/nologo", "/c" };
-
- private static final DevStudioAssembler instance = new DevStudioAssembler(
- "ml", sourceExtensions, headerExtensions, false);
-
- /**
- * Gets masm adapter
- */
- public static DevStudioAssembler getInstance() {
- return instance;
- }
-
- /**
- * Private constructor. Use DevStudioAssembler.getInstance() to get
- * singleton instance of this class.
- */
- private DevStudioAssembler (String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool) {
- super(command, null, sourceExtensions, headerExtensions, ".obj");
- }
-
- public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) {
- if (defaultflag != null && defaultflag.booleanValue()) {
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- if (debug) {
- args.addElement("Zi");
- }
- }
-
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-
- public Linker getLinker(LinkType linkType) {
- return DevStudioLinker.getInstance().getLinker(linkType);
- }
-
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ";");
- }
-
- protected String getIncludeDirSwitch(String includeDir) {
- return "/I" + includeDir.replace('/', '\\');
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java deleted file mode 100644 index 3bb5181250..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCCompiler.java +++ /dev/null @@ -1,50 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Microsoft(r) C/C++ Optimizing Compiler
- *
- * @author Adam Murdoch
- */
-public final class DevStudioCCompiler extends DevStudioCompatibleCCompiler {
- private static final DevStudioCCompiler instance = new DevStudioCCompiler(
- "cl", false, null);
- public static DevStudioCCompiler getInstance() {
- return instance;
- }
- private DevStudioCCompiler(String command, boolean newEnvironment,
- Environment env) {
- super(command, "/bogus", newEnvironment, env);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new DevStudioCCompiler(getCommand(), newEnvironment, env);
- }
- return this;
- }
- public Linker getLinker(LinkType type) {
- return DevStudioLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 4096;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java deleted file mode 100644 index 5e29a323c7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java +++ /dev/null @@ -1,136 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import java.io.File;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.PrecompilingCommandLineCCompiler;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-/**
- * An abstract base class for compilers that are basically command line
- * compatible with Microsoft(r) C/C++ Optimizing Compiler
- *
- * @author Curt Arnold
- */
-public abstract class DevStudioCompatibleCCompiler
- extends
- PrecompilingCommandLineCCompiler {
- private static String[] mflags = new String[]{
- //
- // first four are single-threaded
- // (runtime=static,debug=false), (..,debug=true),
- // (runtime=dynamic,debug=true), (..,debug=false), (not supported)
- // next four are multi-threaded, same sequence
- "/ML", "/MLd", null, null, "/MT", "/MTd", "/MD", "/MDd"};
- private static String[] defaultflags = new String[]{"/nologo", "/c"};
- protected DevStudioCompatibleCCompiler(String command,
- String identifierArg, boolean newEnvironment, Environment env) {
- super(command, identifierArg, new String[]{".c", ".cc", ".cpp", ".cxx",
- ".c++"}, new String[]{".h", ".hpp", ".inl"}, ".obj", false,
- null, newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- if (defaultflag != null && defaultflag.booleanValue()) {
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- if (exceptions) {
- args.addElement("/GX");
- }
- int mindex = 0;
- if (multithreaded) {
- mindex += 4;
- }
- boolean staticRuntime = linkType.isStaticRuntime();
- if (!staticRuntime) {
- mindex += 2;
- }
- if (debug) {
- mindex += 1;
- args.addElement("/Zi");
- args.addElement("/Od");
- args.addElement("/GZ");
- args.addElement("/D_DEBUG");
- } else {
- if (optimization != null) {
- if (optimization.isSize()) {
- args.addElement("/O1");
- }
- if (optimization.isSpeed()) {
- args.addElement("/O2");
- }
- }
- args.addElement("/DNDEBUG");
- }
- String mflag = mflags[mindex];
- if (mflag == null) {
- throw new BuildException(
- "multithread='false' and runtime='dynamic' not supported");
- }
- args.addElement(mflag);
- if (rtti != null && rtti.booleanValue()) {
- args.addElement("/GR");
- }
- }
- protected void addWarningSwitch(Vector args, int level) {
- DevStudioProcessor.addWarningSwitch(args, level);
- }
- protected CompilerConfiguration createPrecompileGeneratingConfig(
- CommandLineCompilerConfiguration baseConfig, File prototype,
- String lastInclude) {
- String[] additionalArgs = new String[]{
- "/Fp" + CUtil.getBasename(prototype) + ".pch", "/Yc"};
- return new CommandLineCompilerConfiguration(baseConfig, additionalArgs,
- null, true);
- }
- protected CompilerConfiguration createPrecompileUsingConfig(
- CommandLineCompilerConfiguration baseConfig, File prototype,
- String lastInclude, String[] exceptFiles) {
- String[] additionalArgs = new String[]{
- "/Fp" + CUtil.getBasename(prototype) + ".pch",
- "/Yu" + lastInclude};
- return new CommandLineCompilerConfiguration(baseConfig, additionalArgs,
- exceptFiles, false);
- }
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- DevStudioProcessor.getDefineSwitch(buffer, define, value);
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ";");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return DevStudioProcessor.getIncludeDirSwitch(includeDir);
- }
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- DevStudioProcessor.getUndefineSwitch(buffer, define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java deleted file mode 100644 index 40bef6e239..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLibrarian.java +++ /dev/null @@ -1,86 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-/**
- * Abstract base adapter for librarians with command line options compatible
- * with the Microsoft(r) Library Manager
- *
- * @author Curt Arnold
- */
-public abstract class DevStudioCompatibleLibrarian extends CommandLineLinker {
- private static String[] defaultflags = new String[]{"/nologo"};
- public DevStudioCompatibleLibrarian(String command, String identifierArg) {
- super(command, identifierArg, new String[]{".obj"}, new String[0],
- ".lib", false, null);
- }
- protected void addBase(long base, Vector args) {
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType,
- Vector args, Boolean defaultflag) {
- if(defaultflag != null && defaultflag.booleanValue()){
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- protected void addMap(boolean map, Vector args) {
- }
- protected void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- protected String getCommandFileSwitch(String cmdFile) {
- return "@" + cmdFile;
- }
- public File[] getLibraryPath() {
- return new File[0];
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return new String[0];
- }
- public int getMaximumCommandLength() {
- return 4096;
- }
- public String[] getOutputFileSwitch(String outFile) {
- StringBuffer buf = new StringBuffer("/OUT:");
- if (outFile.indexOf(' ') >= 0) {
- buf.append('"');
- buf.append(outFile);
- buf.append('"');
- } else {
- buf.append(outFile);
- }
- return new String[]{buf.toString()};
- }
- public boolean isCaseSensitive() {
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java deleted file mode 100644 index 9e156b0426..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java +++ /dev/null @@ -1,127 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-/**
- * Abstract base class for linkers that try to mimic the command line arguments
- * for the Microsoft (r) Incremental Linker
- *
- * @author Curt Arnold
- */
-public abstract class DevStudioCompatibleLinker extends CommandLineLinker {
- private static String[] defaultflags = new String[]{"/NOLOGO"};
- public DevStudioCompatibleLinker(String command, String identifierArg,
- String outputSuffix) {
- super(command, identifierArg, new String[]{".obj", ".lib", ".res"},
- new String[]{".map", ".pdb", ".lnk", ".dll"}, outputSuffix,
- false, null);
- }
- protected void addBase(long base, Vector args) {
- if (base >= 0) {
- String baseAddr = Long.toHexString(base);
- args.addElement("/BASE:0x" + baseAddr);
- }
- }
- protected void addFixed(Boolean fixed, Vector args) {
- if (fixed != null) {
- if (fixed.booleanValue()) {
- args.addElement("/FIXED");
- } else {
- args.addElement("/FIXED:NO");
- }
- }
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType,
- Vector args, Boolean defaultflag) {
- if(defaultflag != null && defaultflag.booleanValue()){
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- if (debug) {
- args.addElement("/DEBUG");
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("/DLL");
- }
- /*
- * if(linkType.isSubsystemGUI()) {
- * args.addElement("/SUBSYSTEM:WINDOWS"); } else {
- * if(linkType.isSubsystemConsole()) {
- * args.addElement("/SUBSYSTEM:CONSOLE"); } }
- */
- }
- protected void addIncremental(boolean incremental, Vector args) {
- if (incremental) {
- args.addElement("/INCREMENTAL:YES");
- } else {
- args.addElement("/INCREMENTAL:NO");
- }
- }
- protected void addMap(boolean map, Vector args) {
- if (map) {
- args.addElement("/MAP");
- }
- }
- protected void addStack(int stack, Vector args) {
- if (stack >= 0) {
- String stackStr = Integer.toHexString(stack);
- args.addElement("/STACK:0x" + stackStr);
- }
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- if (entry != null) {
- args.addElement("/ENTRY:" + entry);
- }
- }
-
- public String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- public File[] getLibraryPath() {
- return CUtil.getPathFromEnvironment("LIB", ";");
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- String[] patterns = new String[libnames.length];
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(libnames[i]);
- buf.append(".lib");
- patterns[i] = buf.toString();
- }
- return patterns;
- }
- public int getMaximumCommandLength() {
- return 4096;
- }
- public String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"/OUT:" + outputFile};
- }
- public boolean isCaseSensitive() {
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java deleted file mode 100644 index 06eac71e19..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLibrarian.java +++ /dev/null @@ -1,36 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-/**
- * Adapter for the Microsoft (r) Library Manager
- *
- * @author Curt Arnold
- */
-public final class DevStudioLibrarian extends DevStudioCompatibleLibrarian {
- private static final DevStudioLibrarian instance = new DevStudioLibrarian();
- public static DevStudioLibrarian getInstance() {
- return instance;
- }
- private DevStudioLibrarian() {
- super("lib", "/bogus");
- }
- public Linker getLinker(LinkType type) {
- return DevStudioLinker.getInstance().getLinker(type);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java deleted file mode 100644 index 7ae0178a8b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioLinker.java +++ /dev/null @@ -1,44 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-/**
- * Adapter for the Microsoft (r) Incremental Linker
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public final class DevStudioLinker extends DevStudioCompatibleLinker {
- private static final DevStudioLinker dllLinker = new DevStudioLinker(".dll");
- private static final DevStudioLinker instance = new DevStudioLinker(".exe");
- public static DevStudioLinker getInstance() {
- return instance;
- }
- private DevStudioLinker(String outputSuffix) {
- super("link", "/DLL", outputSuffix);
- }
- public Linker getLinker(LinkType type) {
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- if (type.isStaticLibrary()) {
- return DevStudioLibrarian.getInstance();
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java deleted file mode 100644 index 7df898b92f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioMIDLCompiler.java +++ /dev/null @@ -1,113 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import java.io.File;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-/**
- * Adapter for the Microsoft (r) MIDL Compiler
- *
- * @author Curt Arnold
- */
-public final class DevStudioMIDLCompiler extends CommandLineCompiler {
- private static final DevStudioMIDLCompiler instance = new DevStudioMIDLCompiler(
- false, null);
- public static DevStudioMIDLCompiler getInstance() {
- return instance;
- }
- private DevStudioMIDLCompiler(boolean newEnvironment, Environment env) {
- super("midl", null, new String[]{".idl", ".odl"}, new String[]{},
- ".tlb", false, null, newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- }
- protected void addWarningSwitch(Vector args, int level) {
- DevStudioProcessor.addWarningSwitch(args, level);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new DevStudioMIDLCompiler(newEnvironment, env);
- }
- return this;
- }
- /**
- * The include parser for C will work just fine, but we didn't want to
- * inherit from CommandLineCCompiler
- */
- protected Parser createParser(File source) {
- return new CParser();
- }
- protected int getArgumentCountPerInputFile() {
- return 3;
- }
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- DevStudioProcessor.getDefineSwitch(buffer, define, value);
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ";");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return DevStudioProcessor.getIncludeDirSwitch(includeDir);
- }
- protected String getInputFileArgument(File outputDir, String filename,
- int index) {
- switch (index) {
- case 0 :
- return "/tlb";
- case 1 :
- return new File(outputDir, getOutputFileName(filename))
- .getAbsolutePath();
- }
- return filename;
- }
- public Linker getLinker(LinkType type) {
- return DevStudioLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- protected int getMaximumInputFilesPerCommand() {
- return 1;
- }
- protected int getTotalArgumentLengthForInputFile(File outputDir,
- String inputFile) {
- String arg1 = getInputFileArgument(outputDir, inputFile, 0);
- String arg2 = getInputFileArgument(outputDir, inputFile, 1);
- String arg3 = getInputFileArgument(outputDir, inputFile, 2);
- return arg1.length() + arg2.length() + arg3.length() + 3;
- }
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- DevStudioProcessor.getUndefineSwitch(buffer, define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java deleted file mode 100644 index 6b2af7ed54..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioProcessor.java +++ /dev/null @@ -1,90 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import java.util.Vector;
-/**
- * A add-in class for Microsoft Developer Studio processors
- *
- *
- */
-public class DevStudioProcessor {
- public static void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("/W0");
- break;
- case 1 :
- args.addElement("/W1");
- break;
- case 2 :
- break;
- case 3 :
- args.addElement("/W3");
- break;
- case 4 :
- args.addElement("/W4");
- break;
- case 5 :
- args.addElement("/WX");
- break;
- }
- }
- public static String getCommandFileSwitch(String cmdFile) {
- StringBuffer buf = new StringBuffer("@");
- if (cmdFile.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(cmdFile.replace('/', '\\'));
- buf.append('\"');
- } else {
- buf.append(cmdFile);
- }
- return buf.toString();
- }
- public static void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- buffer.append("/D");
- buffer.append(define);
- if (value != null && value.length() > 0) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- public static String getIncludeDirSwitch(String includeDir) {
- return "/I" + includeDir.replace('/', '\\');
- }
- public static String[] getOutputFileSwitch(String outPath) {
- StringBuffer buf = new StringBuffer("/Fo");
- if (outPath.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(outPath);
- buf.append('\"');
- } else {
- buf.append(outPath);
- }
- String[] retval = new String[]{buf.toString()};
- return retval;
- }
- public static void getUndefineSwitch(StringBuffer buffer, String define) {
- buffer.append("/U");
- buffer.append(define);
- }
- public static boolean isCaseSensitive() {
- return false;
- }
- private DevStudioProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java deleted file mode 100644 index d6e2fd4442..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/devstudio/DevStudioResourceCompiler.java +++ /dev/null @@ -1,117 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.devstudio;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Microsoft (r) Windows 32 Resource Compiler
- *
- * @author Curt Arnold
- */
-public final class DevStudioResourceCompiler extends CommandLineCompiler {
- private static final DevStudioResourceCompiler instance = new DevStudioResourceCompiler(
- false, null);
- public static DevStudioResourceCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private DevStudioResourceCompiler(boolean newEnvironment, Environment env) {
- super("rc", null, new String[]{".rc"}, new String[]{".h", ".hpp",
- ".inl"}, ".res", false, null, newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- if (debug) {
- args.addElement("/D_DEBUG");
- } else {
- args.addElement("/DNDEBUG");
- }
- }
- protected void addWarningSwitch(Vector args, int level) {
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new DevStudioResourceCompiler(newEnvironment, env);
- }
- return this;
- }
- /**
- * The include parser for C will work just fine, but we didn't want to
- * inherit from CommandLineCCompiler
- */
- protected Parser createParser(File source) {
- return new CParser();
- }
- protected int getArgumentCountPerInputFile() {
- return 2;
- }
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- DevStudioProcessor.getDefineSwitch(buffer, define, value);
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ";");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return DevStudioProcessor.getIncludeDirSwitch(includeDir);
- }
- protected String getInputFileArgument(File outputDir, String filename,
- int index) {
- if (index == 0) {
- String outputFileName = getOutputFileName(filename);
- String fullOutputName = new File(outputDir, outputFileName)
- .toString();
- return "/fo" + fullOutputName;
- }
- return filename;
- }
- public Linker getLinker(LinkType type) {
- return DevStudioLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
- protected int getMaximumInputFilesPerCommand() {
- return 1;
- }
- protected int getTotalArgumentLengthForInputFile(File outputDir,
- String inputFile) {
- String arg1 = getInputFileArgument(outputDir, inputFile, 0);
- String arg2 = getInputFileArgument(outputDir, inputFile, 1);
- return arg1.length() + arg2.length() + 2;
- }
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- DevStudioProcessor.getUndefineSwitch(buffer, define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java deleted file mode 100644 index f7bb2eab95..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractArLibrarian.java +++ /dev/null @@ -1,106 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the "ar" tool
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public abstract class AbstractArLibrarian extends CommandLineLinker {
- private/* final */
- String outputPrefix;
- private static String[] defaultflags = new String[]{};
- protected AbstractArLibrarian(String command, String identificationArg,
- String[] inputExtensions, String[] ignoredExtensions,
- String outputPrefix, String outputExtension, boolean isLibtool,
- AbstractArLibrarian libtoolLibrarian) {
- super(command, identificationArg, inputExtensions, ignoredExtensions,
- outputExtension, isLibtool, libtoolLibrarian);
- this.outputPrefix = outputPrefix;
- }
- public void addBase(long base, Vector args) {
- }
- public void addFixed(Boolean fixed, Vector args) {
- }
- public void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if(defaultflag != null && defaultflag.booleanValue()){
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- }
- public void addIncremental(boolean incremental, Vector args) {
- }
- public void addMap(boolean map, Vector args) {
- }
- public void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- public String getCommandFileSwitch(String commandFile) {
- return null;
- }
- public File[] getLibraryPath() {
- return new File[0];
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return new String[0];
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- public String getOutputFileName(String baseName) {
- return outputPrefix + super.getOutputFileName(baseName);
- }
- public String[] getOutputFileSwitch(String outputFile) {
- return GccProcessor.getOutputFileSwitch("rvs", outputFile);
- }
- public boolean isCaseSensitive() {
- return true;
- }
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- //
- // if there is an existing library then
- // we must delete it before executing "ar"
- if (outputFile.exists()) {
- if (!outputFile.delete()) {
- throw new BuildException("Unable to delete "
- + outputFile.getAbsolutePath());
- }
- }
- //
- // delegate to CommandLineLinker
- //
- super.link(task, outputFile, sourceFiles, config);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java deleted file mode 100644 index f6e376643f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java +++ /dev/null @@ -1,323 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Abstract adapter for ld-like linkers
- *
- * @author Curt Arnold
- */
-public abstract class AbstractLdLinker extends CommandLineLinker {
- private String outputPrefix;
- private static String[] defaultflags = new String[]{};
- protected AbstractLdLinker(String command, String identifierArg,
- String[] extensions, String[] ignoredExtensions,
- String outputPrefix, String outputSuffix, boolean isLibtool,
- AbstractLdLinker libtoolLinker) {
- super(command, identifierArg, extensions, ignoredExtensions,
- outputSuffix, isLibtool, libtoolLinker);
- this.outputPrefix = outputPrefix;
- }
- public void addBase(long base, Vector args) {
- if (base >= 0) {
- args.addElement("--image-base");
- args.addElement(Long.toHexString(base));
- }
- }
- public void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if(defaultflag != null && defaultflag.booleanValue()){
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- if (debug) {
- args.addElement("-g");
- }
- if (isDarwin()) {
- if (linkType.isPluginModule()) {
- args.addElement("-bundle");
- } else {
- if (linkType.isSharedLibrary()) {
- args.addElement("-prebind");
- args.addElement("-dynamiclib");
- }
- }
- } else {
- if (linkType.isStaticRuntime()) {
- args.addElement("-static");
- }
- if (linkType.isPluginModule()) {
- args.addElement("-shared");
- } else {
- if (linkType.isSharedLibrary()) {
- args.addElement("-shared");
- }
- }
- }
- }
- public void addIncremental(boolean incremental, Vector args) {
- if (incremental) {
- args.addElement("-i");
- }
- }
- protected int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
- public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- Vector libnames = new Vector();
- super.addLibrarySets(task, libsets, preargs, midargs, endargs);
- LibraryTypeEnum previousLibraryType = null;
- for (int i = 0; i < libsets.length; i++) {
- LibrarySet set = libsets[i];
- File libdir = set.getDir(null);
- String[] libs = set.getLibs();
- if (libdir != null) {
- if (set.getType() != null &&
- "framework".equals(set.getType().getValue()) &&
- isDarwin()) {
- endargs.addElement("-F" + libdir.getAbsolutePath());
- } else {
- endargs.addElement("-L" + libdir.getAbsolutePath());
- }
- }
- //
- // if there has been a change of library type
- //
- if (set.getType() != previousLibraryType) {
- if (set.getType() != null && "static".equals(set.getType().getValue())) {
- endargs.addElement("-Bstatic");
- previousLibraryType = set.getType();
- } else {
- if (set.getType() == null ||
- !"framework".equals(set.getType().getValue()) ||
- !isDarwin()) {
- endargs.addElement("-Bdynamic");
- previousLibraryType = set.getType();
- }
- }
- }
- StringBuffer buf = new StringBuffer("-l");
- if (set.getType() != null &&
- "framework".equals(set.getType().getValue()) &&
- isDarwin()) {
- buf.setLength(0);
- buf.append("-framework ");
- }
- int initialLength = buf.length();
- for (int j = 0; j < libs.length; j++) {
- //
- // reset the buffer to just "-l"
- //
- buf.setLength(initialLength);
- //
- // add the library name
- buf.append(libs[j]);
- libnames.addElement(libs[j]);
- //
- // add the argument to the list
- endargs.addElement(buf.toString());
- }
- }
- String rc[] = new String[libnames.size()];
- for (int i = 0; i < libnames.size(); i++) {
- rc[i] = (String) libnames.elementAt(i);
- }
- return rc;
- }
- public void addMap(boolean map, Vector args) {
- if (map) {
- args.addElement("-M");
- }
- }
- public void addStack(int stack, Vector args) {
- if (stack > 0) {
- args.addElement("--stack");
- args.addElement(Integer.toString(stack));
- }
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- if (entry != null) {
- args.addElement("-e");
- args.addElement(entry);
- }
- }
-
- public String getCommandFileSwitch(String commandFile) {
- throw new IllegalStateException("ld does not support command files");
- }
- /**
- * Returns library path.
- *
- */
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("LIB", ":");
- }
- public String getLibraryKey(File libfile) {
- String libname = libfile.getName();
- int lastDot = libname.lastIndexOf('.');
- if (lastDot >= 0) {
- return libname.substring(0, lastDot);
- }
- return libname;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- return new File[0];
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- int patternCount = libnames.length;
- if (libType == null) {
- patternCount *= 2;
- }
- String[] patterns = new String[patternCount];
- int offset = 0;
- if (libType == null || "static".equals(libType.getValue())) {
- offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);
- }
- if (libType != null && "framework".equals(libType.getValue()) && isDarwin()) {
- for(int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(libnames[i]);
- buf.append(".framework/");
- buf.append(libnames[i]);
- patterns[offset++] = buf.toString();
- }
- } else {
- if (libType == null || !"static".equals(libType.getValue())) {
- if (isHPUX()) {
- offset = addLibraryPatterns(libnames, buf, "lib", ".sl", patterns,
- offset);
- } else {
- offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns,
- offset);
- }
- }
- }
- return patterns;
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- public String getOutputFileName(String baseName) {
- return outputPrefix + super.getOutputFileName(baseName);
- }
- public String[] getOutputFileSwitch(String outputFile) {
- return GccProcessor.getOutputFileSwitch("-o", outputFile);
- }
- public boolean isCaseSensitive() {
- return true;
- }
- protected boolean isHPUX() {
- String osname = System.getProperty("os.name").toLowerCase();
- if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) {
- return true;
- }
- return false;
- }
- /**
- * Prepares argument list for exec command. Will return null if command
- * line would exceed allowable command line buffer.
- *
- * @param outputFile
- * linker output file
- * @param sourceFiles
- * linker input files (.obj, .o, .res)
- * @param args
- * linker arguments
- * @return arguments for runTask
- */
- public String[] prepareArguments(CCTask task, String outputDir,
- String outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) {
- //
- // need to suppress sources that correspond to
- // library set entries since they are already
- // in the argument list
- String[] libnames = config.getLibraryNames();
- if (libnames == null || libnames.length == 0) {
- return super.prepareArguments(task, outputDir, outputFile,
- sourceFiles, config);
- }
- //
- //
- // null out any sources that correspond to library names
- //
- String[] localSources = (String[]) sourceFiles.clone();
- int extra = 0;
- for (int i = 0; i < libnames.length; i++) {
- String libname = libnames[i];
- for (int j = 0; j < localSources.length; j++) {
- if (localSources[j] != null
- && localSources[j].indexOf(libname) > 0
- && localSources[j].indexOf("lib") > 0) {
- String filename = new File(localSources[j]).getName();
- if (filename.startsWith("lib")
- && filename.substring(3).startsWith(libname)) {
- String extension = filename
- .substring(libname.length() + 3);
- if (extension.equals(".a") || extension.equals(".so")
- || extension.equals(".sl")) {
- localSources[j] = null;
- extra++;
- }
- }
- }
- }
- }
- if (extra == 0) {
- return super.prepareArguments(task, outputDir, outputFile,
- sourceFiles, config);
- }
- String[] finalSources = new String[localSources.length - extra];
- int index = 0;
- for (int i = 0; i < localSources.length; i++) {
- if (localSources[i] != null) {
- finalSources[index++] = localSources[i];
- }
- }
- return super.prepareArguments(task, outputDir, outputFile,
- finalSources, config);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java deleted file mode 100644 index 412bffa847..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccAssembler.java +++ /dev/null @@ -1,76 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineAssembler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-
-/**
- * Adapter for gcc assemble
- *
- */
-public final class GccAssembler extends CommandLineAssembler {
- private final static String[] sourceExtensions = new String[] { ".asm" };
-
- private final static String[] headerExtensions = new String[] { ".h",
- ".inc" };
-
- private static final GccAssembler instance = new GccAssembler("gas",
- sourceExtensions, headerExtensions, false);
-
- /**
- * Gets gcc adapter
- */
- public static GccAssembler getInstance() {
- return instance;
- }
-
- /**
- * Private constructor. Use GccAssembler.getInstance() to get singleton
- * instance of this class.
- */
- private GccAssembler (String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool) {
- super(command, null, sourceExtensions, headerExtensions,
- isLibtool ? ".fo" : ".o");
- }
-
- public void addImpliedArgs(Vector args, boolean debug, Boolean defaultflag) {
-
- }
-
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-
- public Linker getLinker(LinkType linkType) {
- return GccLinker.getInstance().getLinker(linkType);
- }
-
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ":");
- }
-
- protected String getIncludeDirSwitch(String includeDir) {
- return "-I" + includeDir;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java deleted file mode 100644 index af3b26b134..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java +++ /dev/null @@ -1,243 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.FortranParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-/**
- * Adapter for the GCC C/C++ compiler
- *
- * @author Adam Murdoch
- */
-public final class GccCCompiler extends GccCompatibleCCompiler {
- private final static String[] sourceExtensions = new String[]{".c", /* C */
- ".cc", /* C++ */
- ".cpp", /* C++ */
- ".cxx", /* C++ */
- ".c++", /* C++ */
- ".i", /* preprocessed C */
- ".ii", /* preprocessed C++ */
- ".f", /* FORTRAN */
- ".for", /* FORTRAN */
- ".m", /* Objective-C */
- ".mm", /* Objected-C++ */
- ".s" /* Assembly */
- };
- private final static String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- private static final GccCCompiler cppInstance = new GccCCompiler("c++",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("c++", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- private static final GccCCompiler g77Instance = new GccCCompiler("g77",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("g77", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- private static final GccCCompiler gppInstance = new GccCCompiler("g++",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("g++", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- private static final GccCCompiler instance = new GccCCompiler("gcc",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("gcc", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- /**
- * Gets c++ adapter
- */
- public static GccCCompiler getCppInstance() {
- return cppInstance;
- }
- /**
- * Gets g77 adapter
- */
- public static GccCCompiler getG77Instance() {
- return g77Instance;
- }
- /**
- * Gets gpp adapter
- */
- public static GccCCompiler getGppInstance() {
- return gppInstance;
- }
- /**
- * Gets gcc adapter
- */
- public static GccCCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private File[] includePath;
- private boolean isPICMeaningful = true;
- /**
- * Private constructor. Use GccCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- private GccCCompiler(String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool,
- GccCCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super(command, null, sourceExtensions, headerExtensions, isLibtool,
- libtoolCompiler, newEnvironment, env);
- isPICMeaningful = System.getProperty("os.name").indexOf("Windows") < 0;
- }
- public void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- super.addImpliedArgs(args, debug, multithreaded,
- exceptions, linkType, rtti, optimization, defaultflag);
- if (isPICMeaningful && linkType.isSharedLibrary()) {
- args.addElement("-fPIC");
- }
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new GccCCompiler(getCommand(), this.getSourceExtensions(),
- this.getHeaderExtensions(), this.getLibtool(),
- (GccCCompiler) this.getLibtoolCompiler(), newEnvironment,
- env);
- }
- return this;
- }
- /**
- * Create parser to determine dependencies.
- *
- * Will create appropriate parser (C++, FORTRAN) based on file extension.
- *
- */
- protected Parser createParser(File source) {
- if (source != null) {
- String sourceName = source.getName();
- int lastDot = sourceName.lastIndexOf('.');
- if (lastDot >= 0 && lastDot + 1 < sourceName.length()) {
- char afterDot = sourceName.charAt(lastDot + 1);
- if (afterDot == 'f' || afterDot == 'F') {
- return new FortranParser();
- }
- }
- }
- return new CParser();
- }
- public File[] getEnvironmentIncludePath() {
- if (includePath == null) {
- //
- // construct default include path from machine id and version id
- //
- String[] defaultInclude = new String[1];
- StringBuffer buf = new StringBuffer("/lib/");
- buf.append(GccProcessor.getMachine());
- buf.append('/');
- buf.append(GccProcessor.getVersion());
- buf.append("/include");
- defaultInclude[0] = buf.toString();
- //
- // read specs file and look for -istart and -idirafter
- //
- String[] specs = GccProcessor.getSpecs();
- String[][] optionValues = GccProcessor.parseSpecs(specs, "*cpp:",
- new String[]{"-isystem ", "-idirafter "});
- //
- // if no entries were found, then use a default path
- //
- if (optionValues[0].length == 0 && optionValues[1].length == 0) {
- optionValues[0] = new String[]{"/usr/local/include",
- "/usr/include", "/usr/include/win32api"};
- }
- //
- // remove mingw entries.
- // For MinGW compiles this will mean the
- // location of the sys includes will be
- // wrong in dependencies.xml
- // but that should have no significant effect
- for (int i = 0; i < optionValues.length; i++) {
- for (int j = 0; j < optionValues[i].length; j++) {
- if (optionValues[i][j].indexOf("mingw") > 0) {
- optionValues[i][j] = null;
- }
- }
- }
- //
- // if cygwin then
- // we have to prepend location of gcc32
- // and .. to start of absolute filenames to
- // have something that will exist in the
- // windows filesystem
- if (GccProcessor.isCygwin()) {
- GccProcessor.convertCygwinFilenames(optionValues[0]);
- GccProcessor.convertCygwinFilenames(optionValues[1]);
- GccProcessor.convertCygwinFilenames(defaultInclude);
- }
- int count = CUtil.checkDirectoryArray(optionValues[0]);
- count += CUtil.checkDirectoryArray(optionValues[1]);
- count += CUtil.checkDirectoryArray(defaultInclude);
- includePath = new File[count];
- int index = 0;
- for (int i = 0; i < optionValues.length; i++) {
- for (int j = 0; j < optionValues[i].length; j++) {
- if (optionValues[i][j] != null) {
- includePath[index++] = new File(optionValues[i][j]);
- }
- }
- }
- for (int i = 0; i < defaultInclude.length; i++) {
- if (defaultInclude[i] != null) {
- includePath[index++] = new File(defaultInclude[i]);
- }
- }
- }
- return (File[]) includePath.clone();
- }
- public String getIdentifier() throws BuildException {
- if (identifier == null) {
- StringBuffer buf;
- if (getLibtool()) {
- buf = new StringBuffer("libtool ");
- } else {
- buf = new StringBuffer(' ');
- }
- buf.append(getCommand());
- buf.append(' ');
- buf.append(GccProcessor.getVersion());
- buf.append(' ');
- buf.append(GccProcessor.getMachine());
- identifier = buf.toString();
- }
- return identifier;
- }
- public Linker getLinker(LinkType linkType) {
- return GccLinker.getInstance().getLinker(linkType);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java deleted file mode 100644 index 98f086ed61..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java +++ /dev/null @@ -1,152 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-/**
- * Abstract base class for compilers that attempt to be command line compatible
- * with GCC
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public abstract class GccCompatibleCCompiler extends CommandLineCCompiler {
- private final static String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- private final static String[] sourceExtensions = new String[]{".c", ".cc",
- ".cpp", ".cxx", ".c++", ".i", ".f", ".for"};
- private final static String[] defaultflags = new String[]{"-c"};
- /**
- * Private constructor. Use GccCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- protected GccCompatibleCCompiler(String command, String identifierArg,
- boolean libtool, GccCompatibleCCompiler libtoolCompiler,
- boolean newEnvironment, Environment env) {
- super(command, identifierArg, sourceExtensions, headerExtensions,
- libtool ? ".fo" : ".o", libtool, libtoolCompiler,
- newEnvironment, env);
- }
- /**
- * Private constructor. Use GccCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- protected GccCompatibleCCompiler(String command, String identifierArg,
- String[] sourceExtensions, String[] headerExtensions,
- boolean libtool, GccCompatibleCCompiler libtoolCompiler,
- boolean newEnvironment, Environment env) {
- super(command, identifierArg, sourceExtensions, headerExtensions,
- libtool ? ".fo" : ".o", libtool, libtoolCompiler,
- newEnvironment, env);
- }
- public void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- //
- // -fPIC is too much trouble
- // users have to manually add it for
- // operating systems that make sense
- //
- if (defaultflag != null && defaultflag.booleanValue()) {
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- if (debug) {
- args.addElement("-g");
- } else {
- if (optimization != null) {
- if (optimization.isSize()) {
- args.addElement("-Os");
- } else if (optimization.isSpeed()) {
- if ("full".equals(optimization.getValue())) {
- args.addElement("-O2");
- } else {
- if ("speed".equals(optimization.getValue())) {
- args.addElement("-O1");
- } else {
- args.addElement("-O3");
- }
- }
- }
- }
- }
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- if (rtti != null && !rtti.booleanValue()) {
- args.addElement("-fno-rtti");
- }
-
- }
- /**
- * Adds an include path to the command.
- */
- public void addIncludePath(String path, Vector cmd) {
- cmd.addElement("-I" + path);
- }
- public void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("-w");
- break;
- case 5 :
- args.addElement("-Werror");
- /* nobreak */
- case 4 :
- args.addElement("-W");
- /* nobreak */
- case 3 :
- args.addElement("-Wall");
- break;
- }
- }
- public void getDefineSwitch(StringBuffer buffer, String define, String value) {
- buffer.append("-D");
- buffer.append(define);
- if (value != null && value.length() > 0) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ":");
- }
- public String getIncludeDirSwitch(String includeDir) {
- return "-I" + includeDir;
- }
- public void getUndefineSwitch(StringBuffer buffer, String define) {
- buffer.append("-U");
- buffer.append(define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java deleted file mode 100644 index 62500021cf..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLibrarian.java +++ /dev/null @@ -1,41 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-/**
- * Adapter for the 'ar' archiver
- *
- * @author Adam Murdoch
- */
-public final class GccLibrarian extends AbstractArLibrarian {
- private static String[] objFileExtensions = new String[]{".o"};
- private static GccLibrarian instance = new GccLibrarian("ar",
- objFileExtensions, false, new GccLibrarian("ar", objFileExtensions,
- true, null));
- public static GccLibrarian getInstance() {
- return instance;
- }
- private GccLibrarian(String command, String[] inputExtensions,
- boolean isLibtool, GccLibrarian libtoolLibrarian) {
- super(command, "V", inputExtensions, new String[0], "lib", ".a",
- isLibtool, libtoolLibrarian);
- }
- public Linker getLinker(LinkType type) {
- return GccLinker.getInstance().getLinker(type);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java deleted file mode 100644 index f37f55092a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccLinker.java +++ /dev/null @@ -1,210 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-/**
- * Adapter for the GCC linker
- *
- * @author Adam Murdoch
- */
-public class GccLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static String[] linkerOptions = new String[]{"-bundle",
- "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s",
- "-static", "-shared", "-symbolic", "-Xlinker",
- "--export-all-symbols", "-static-libgcc",};
- private static final GccLinker dllLinker = new GccLinker("gcc", objFiles,
- discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles,
- discardFiles, "lib", ".so", true, null));
- private static final GccLinker instance = new GccLinker("gcc", objFiles,
- discardFiles, "", "", false, null);
- private static final GccLinker machBundleLinker = new GccLinker("gcc",
- objFiles, discardFiles, "lib", ".bundle", false, null);
- private static final GccLinker machDllLinker = new GccLinker("gcc",
- objFiles, discardFiles, "lib", ".dylib", false, null);
- public static GccLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- protected GccLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GccLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- super.addImpliedArgs(debug, linkType, args, defaultflag);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- }
- /**
- * Allows drived linker to decorate linker option. Override by GccLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g' :
- case 'f' :
- case 'F' :
- /* Darwin */
- case 'm' :
- case 'O' :
- case 'W' :
- case 'l' :
- case 'L' :
- case 'u' :
- case 'v' :
- break;
- default :
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- //
- // construct gcc lib path from machine and version
- //
- StringBuffer buf = new StringBuffer("/lib/gcc-lib/");
- buf.append(GccProcessor.getMachine());
- buf.append('/');
- buf.append(GccProcessor.getVersion());
- //
- // build default path from gcc and system /lib and /lib/w32api
- //
- String[] impliedLibPath = new String[]{buf.toString(),
- "/lib/w32api", "/lib"};
- //
- // read gcc specs file for other library paths
- //
- String[] specs = GccProcessor.getSpecs();
- String[][] libpaths = GccProcessor.parseSpecs(specs, "*link:",
- new String[]{"%q"});
- String[] libpath;
- if (libpaths[0].length > 0) {
- libpath = new String[libpaths[0].length + 3];
- int i = 0;
- for (; i < libpaths[0].length; i++) {
- libpath[i] = libpaths[0][i];
- }
- libpath[i++] = buf.toString();
- libpath[i++] = "/lib/w32api";
- libpath[i++] = "/lib";
- } else {
- //
- // if a failure to find any matches then
- // use some default values for lib path entries
- libpath = new String[]{"/usr/local/lib/mingw",
- "/usr/local/lib", "/usr/lib/w32api", "/usr/lib/mingw",
- "/usr/lib", buf.toString(), "/lib/w32api", "/lib"};
- }
- for (int i = 0; i < libpath.length; i++) {
- if (libpath[i].indexOf("mingw") >= 0) {
- libpath[i] = null;
- }
- }
- //
- // if cygwin then
- // we have to prepend location of gcc32
- // and .. to start of absolute filenames to
- // have something that will exist in the
- // windows filesystem
- if (GccProcessor.isCygwin()) {
- GccProcessor.convertCygwinFilenames(libpath);
- }
- //
- // check that remaining entries are actual directories
- //
- int count = CUtil.checkDirectoryArray(libpath);
- //
- // populate return array with remaining entries
- //
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; i++) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isPluginModule()) {
- if (isDarwin()) {
- return machBundleLinker;
- } else {
- return dllLinker;
- }
- }
- if (type.isSharedLibrary()) {
- if (isDarwin()) {
- return machDllLinker;
- } else {
- return dllLinker;
- }
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java deleted file mode 100644 index 236969f5e7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java +++ /dev/null @@ -1,299 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
-/**
- * A add-in class for Gcc processors
- *
- *
- */
-public class GccProcessor {
- // the results from gcc -dumpmachine
- private static String machine;
- private static String[] specs;
- // the results from gcc -dumpversion
- private static String version;
- private static int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
- /**
- * Converts absolute Cygwin file or directory names to the corresponding
- * Win32 name.
- *
- * @param names
- * array of names, some elements may be null, will be changed in
- * place.
- */
- public static void convertCygwinFilenames(String[] names) {
- if (names == null) {
- throw new NullPointerException("names");
- }
- File gccDir = CUtil.getExecutableLocation("gcc.exe");
- if (gccDir != null) {
- String prefix = gccDir.getAbsolutePath() + "/..";
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < names.length; i++) {
- String name = names[i];
- if (name != null && name.length() > 1 && name.charAt(0) == '/') {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(name);
- names[i] = buf.toString();
- }
- }
- }
- }
- public static String[] getLibraryPatterns(String[] libnames) {
- StringBuffer buf = new StringBuffer();
- String[] patterns = new String[libnames.length * 2];
- int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);
- if (isHPUX()) {
- offset = addLibraryPatterns(libnames, buf, "lib", ".sl", patterns,
- offset);
- } else {
- offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns,
- offset);
- }
- return patterns;
- }
- public static String getMachine() {
- if (machine == null) {
- String[] args = new String[]{"gcc", "-dumpmachine"};
- String[] cmdout = CaptureStreamHandler.run(args);
- if (cmdout.length == 0) {
- machine = "nomachine";
- } else {
- machine = cmdout[0];
- }
- }
- return machine;
- }
- public static String[] getOutputFileSwitch(String letter, String outputFile) {
- StringBuffer buf = new StringBuffer();
- if (outputFile.indexOf(' ') >= 0) {
- buf.append('"');
- buf.append(outputFile.replace('\\', '/'));
- buf.append('"');
- } else {
- buf.append(outputFile.replace('\\', '/'));
- }
- String[] retval = new String[]{letter, buf.toString()};
- return retval;
- }
- /**
- * Returns the contents of the gcc specs file.
- *
- * The implementation locates gcc.exe in the executable path and then
- * builds a relative path name from the results of -dumpmachine and
- * -dumpversion. Attempts to use gcc -dumpspecs to provide this information
- * resulted in stalling on the Execute.run
- *
- * @returns contents of the specs file
- */
- public static String[] getSpecs() {
- if (specs == null) {
- File gccParent = CUtil.getExecutableLocation("gcc.exe");
- if (gccParent != null) {
- //
- // build a relative path like
- // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs
- //
- StringBuffer buf = new StringBuffer("../lib/gcc-lib/");
- buf.append(getMachine());
- buf.append('/');
- buf.append(getVersion());
- buf.append("/specs");
- //
- // resolve it relative to the location of gcc.exe
- //
- String relativePath = buf.toString();
- File specsFile = new File(gccParent, relativePath);
- //
- // found the specs file
- //
- try {
- //
- // read the lines in the file
- //
- BufferedReader reader = new BufferedReader(new FileReader(
- specsFile));
- Vector lines = new Vector(100);
- String line = reader.readLine();
- while (line != null) {
- lines.addElement(line);
- line = reader.readLine();
- }
- specs = new String[lines.size()];
- lines.copyInto(specs);
- } catch (IOException ex) {
- }
- }
- }
- if (specs == null) {
- specs = new String[0];
- }
- return specs;
- }
- public static String getVersion() {
- if (version == null) {
- String[] args = new String[]{"gcc", "-dumpversion"};
- String[] cmdout = CaptureStreamHandler.run(args);
- if (cmdout.length == 0) {
- version = "noversion";
- } else {
- version = cmdout[0];
- }
- }
- return version;
- }
- public static boolean isCaseSensitive() {
- return true;
- }
- /**
- * Determines if task is running with cygwin
- *
- * @return true if cygwin was detected
- */
- public static boolean isCygwin() {
- return getMachine().indexOf("cygwin") > 0;
- }
- private static boolean isHPUX() {
- String osname = System.getProperty("os.name").toLowerCase();
- if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) {
- return true;
- }
- return false;
- }
- /**
- *
- * Parses the results of the specs file for a specific processor and
- * options
- *
- * @param specsContent
- * Contents of specs file as returned from getSpecs
- * @param specSectionStart
- * start of spec section, for example "*cpp:"
- * @param options
- * command line switches such as "-istart"
- */
- public static String[][] parseSpecs(String[] specsContent,
- String specSectionStart, String[] options) {
- if (specsContent == null) {
- throw new NullPointerException("specsContent");
- }
- if (specSectionStart == null) {
- throw new NullPointerException("specSectionStart");
- }
- if (options == null) {
- throw new NullPointerException("option");
- }
- String[][] optionValues = new String[options.length][];
- StringBuffer optionValue = new StringBuffer(40);
- for (int i = 0; i < specsContent.length; i++) {
- String specLine = specsContent[i];
- //
- // if start of section then start paying attention
- //
- if (specLine.startsWith(specSectionStart)) {
- Vector[] optionVectors = new Vector[options.length];
- for (int j = 0; j < options.length; j++) {
- optionVectors[j] = new Vector(10);
- }
- //
- // go to next line and examine contents
- // and repeat until end of file
- //
- for (i++; i < specsContent.length; i++) {
- specLine = specsContent[i];
- for (int j = 0; j < options.length; j++) {
- int optionStart = specLine.indexOf(options[j]);
- while (optionStart >= 0) {
- optionValue.setLength(0);
- //
- // walk rest of line looking for first non
- // whitespace
- // and then next space
- boolean hasNonBlank = false;
- int k = optionStart + options[j].length();
- for (; k < specLine.length(); k++) {
- //
- // either a blank or a "}" (close of
- // conditional)
- // section will end the path
- //
- if (specLine.charAt(k) == ' '
- || specLine.charAt(k) == '}') {
- if (hasNonBlank) {
- break;
- }
- } else {
- hasNonBlank = true;
- optionValue.append(specLine.charAt(k));
- }
- }
- //
- // transition back to whitespace
- // value is over, add it to vector
- if (hasNonBlank) {
- optionVectors[j].addElement(optionValue
- .toString());
- }
- //
- // find next occurance on line
- //
- optionStart = specLine.indexOf(options[j], k);
- }
- }
- }
- //
- // copy vectors over to option arrays
- //
- for (int j = 0; j < options.length; j++) {
- optionValues[j] = new String[optionVectors[j].size()];
- optionVectors[j].copyInto(optionValues[j]);
- }
- }
- }
- //
- // fill in any missing option values with
- // a zero-length string array
- for (int i = 0; i < optionValues.length; i++) {
- String[] zeroLenArray = new String[0];
- if (optionValues[i] == null) {
- optionValues[i] = zeroLenArray;
- }
- }
- return optionValues;
- }
- private GccProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java deleted file mode 100644 index e7036abe16..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/GppLinker.java +++ /dev/null @@ -1,203 +0,0 @@ -/*
- *
- * Copyright 2003-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-/**
- * Adapter for the g++ variant of the GCC linker
- *
- * @author Stephen M. Webb <stephen.webb@bregmasoft.com>
- */
-public class GppLinker extends AbstractLdLinker {
- protected static final String[] discardFiles = new String[0];
- protected static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final GppLinker dllLinker = new GppLinker("gcc", objFiles,
- discardFiles, "lib", ".so", false, new GppLinker("gcc", objFiles,
- discardFiles, "lib", ".so", true, null));
- private final static String libPrefix = "libraries: =";
- protected static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static String[] linkerOptions = new String[]{"-bundle", "-dylib",
- "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib",
- "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"};
- private static final GppLinker instance = new GppLinker("gcc", objFiles,
- discardFiles, "", "", false, null);
- private static final GppLinker machDllLinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".dylib", false, null);
- private static final GppLinker machPluginLinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".bundle", false, null);
- public static GppLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private String runtimeLibrary;
- protected GppLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- super.addImpliedArgs(debug, linkType, args, defaultflag);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- if (linkType.isStaticRuntime()) {
- String[] cmdin = new String[]{"g++", "-print-file-name=libstdc++.a"};
- String[] cmdout = CaptureStreamHandler.run(cmdin);
- if (cmdout.length > 0) {
- runtimeLibrary = cmdout[0];
- } else {
- runtimeLibrary = null;
- }
- } else {
- runtimeLibrary = "-lstdc++";
- }
- }
- public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- String[] rs = super.addLibrarySets(task, libsets, preargs, midargs,
- endargs);
- if (runtimeLibrary != null) {
- endargs.addElement(runtimeLibrary);
- }
- return rs;
- }
- /**
- * Allows drived linker to decorate linker option. Override by GppLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g' :
- case 'f' :
- case 'F' :
- /* Darwin */
- case 'm' :
- case 'O' :
- case 'W' :
- case 'l' :
- case 'L' :
- case 'u' :
- break;
- default :
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- Vector dirs = new Vector();
- // Ask GCC where it will look for its libraries.
- String[] args = new String[]{"g++", "-print-search-dirs"};
- String[] cmdout = CaptureStreamHandler.run(args);
- for (int i = 0; i < cmdout.length; ++i) {
- int prefixIndex = cmdout[i].indexOf(libPrefix);
- if (prefixIndex >= 0) {
- // Special case DOS-type GCCs like MinGW or Cygwin
- int s = prefixIndex + libPrefix.length();
- int t = cmdout[i].indexOf(';', s);
- while (t > 0) {
- dirs.addElement(cmdout[i].substring(s, t));
- s = t + 1;
- t = cmdout[i].indexOf(';', s);
- }
- dirs.addElement(cmdout[i].substring(s));
- ++i;
- for (; i < cmdout.length; ++i) {
- dirs.addElement(cmdout[i]);
- }
- }
- }
- // Eliminate all but actual directories.
- String[] libpath = new String[dirs.size()];
- dirs.copyInto(libpath);
- int count = CUtil.checkDirectoryArray(libpath);
- // Build return array.
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; ++i) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isPluginModule()) {
- if (GccProcessor.getMachine().indexOf("darwin") >= 0) {
- return machPluginLinker;
- } else {
- return dllLinker;
- }
- }
- if (type.isSharedLibrary()) {
- if (GccProcessor.getMachine().indexOf("darwin") >= 0) {
- return machDllLinker;
- } else {
- return dllLinker;
- }
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java deleted file mode 100644 index e05fa5b2db..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/LdLinker.java +++ /dev/null @@ -1,57 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-/**
- * Adapter for the 'ld' linker
- *
- * @author Curt Arnold
- */
-public final class LdLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final LdLinker dllLinker = new LdLinker("ld", objFiles,
- discardFiles, "lib", ".so", false, new LdLinker("ld", objFiles,
- discardFiles, "lib", ".so", true, null));
- private static final LdLinker instance = new LdLinker("ld", objFiles,
- discardFiles, "", "", false, null);
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- public static LdLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private LdLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, LdLinker libtoolLinker) {
- super(command, "-version", extensions, ignoredExtensions, outputPrefix,
- outputSuffix, isLibtool, libtoolLinker);
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java deleted file mode 100644 index 6a5697eb80..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccCCompiler.java +++ /dev/null @@ -1,273 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross;
-import java.io.File;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.CompilerParam;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.FortranParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-/**
- * Adapter for the GCC C/C++ compiler
- *
- * @author Adam Murdoch
- */
-public final class GccCCompiler extends GccCompatibleCCompiler {
- private final static String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- private final static String[] sourceExtensions = new String[]{".c", /* C */
- ".cc", /* C++ */
- ".cpp", /* C++ */
- ".cxx", /* C++ */
- ".c++", /* C++ */
- ".i", /* preprocessed C */
- ".ii", /* preprocessed C++ */
- ".f", /* FORTRAN */
- ".for", /* FORTRAN */
- ".m", /* Objective-C */
- ".mm", /* Objected-C++ */
- ".s" /* Assembly */
- };
- private static final GccCCompiler cppInstance = new GccCCompiler("c++",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("c++", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- private static final GccCCompiler g77Instance = new GccCCompiler("g77",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("g77", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- private static final GccCCompiler gppInstance = new GccCCompiler("g++",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("g++", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- private static final GccCCompiler instance = new GccCCompiler("gcc",
- sourceExtensions, headerExtensions, false,
- new GccCCompiler("gcc", sourceExtensions, headerExtensions, true,
- null, false, null), false, null);
- /**
- * Gets c++ adapter
- */
- public static GccCCompiler getCppInstance() {
- return cppInstance;
- }
- /**
- * Gets g77 adapter
- */
- public static GccCCompiler getG77Instance() {
- return g77Instance;
- }
- /**
- * Gets gpp adapter
- */
- public static GccCCompiler getGppInstance() {
- return gppInstance;
- }
- /**
- * Gets gcc adapter
- */
- public static GccCCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private File[] includePath;
- private boolean isPICMeaningful = true;
- /**
- * Private constructor. Use GccCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- private GccCCompiler(String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool,
- GccCCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super(command, null, sourceExtensions, headerExtensions, isLibtool,
- libtoolCompiler, newEnvironment, env);
- isPICMeaningful = System.getProperty("os.name").indexOf("Windows") < 0;
- }
- public void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- super.addImpliedArgs(args, debug, multithreaded,
- exceptions, linkType, rtti, optimization, defaultflag);
- if (isPICMeaningful && linkType.isSharedLibrary()) {
- args.addElement("-fPIC");
- }
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new GccCCompiler(getCommand(), this.getSourceExtensions(),
- this.getHeaderExtensions(), this.getLibtool(),
- (GccCCompiler) this.getLibtoolCompiler(), newEnvironment,
- env);
- }
- return this;
- }
- protected Object clone() throws CloneNotSupportedException {
- GccCCompiler clone = (GccCCompiler) super.clone();
- return clone;
- }
- public void compile(CCTask task, File outputDir, String[] sourceFiles,
- String[] args, String[] endArgs, boolean relentless,
- CommandLineCompilerConfiguration config, ProgressMonitor monitor)
- throws BuildException {
- try {
- GccCCompiler clone = (GccCCompiler) this.clone();
- CompilerParam param = config.getParam("target");
- if (param != null)
- clone.setCommand(param.getValue() + "-" + this.getCommand());
- clone.supercompile(task, outputDir, sourceFiles, args, endArgs,
- relentless, config, monitor);
- } catch (CloneNotSupportedException e) {
- supercompile(task, outputDir, sourceFiles, args, endArgs,
- relentless, config, monitor);
- }
- }
- /**
- * Create parser to determine dependencies.
- *
- * Will create appropriate parser (C++, FORTRAN) based on file extension.
- *
- */
- protected Parser createParser(File source) {
- if (source != null) {
- String sourceName = source.getName();
- int lastDot = sourceName.lastIndexOf('.');
- if (lastDot >= 0 && lastDot + 1 < sourceName.length()) {
- char afterDot = sourceName.charAt(lastDot + 1);
- if (afterDot == 'f' || afterDot == 'F') {
- return new FortranParser();
- }
- }
- }
- return new CParser();
- }
- public File[] getEnvironmentIncludePath() {
- if (includePath == null) {
- //
- // construct default include path from machine id and version id
- //
- String[] defaultInclude = new String[1];
- StringBuffer buf = new StringBuffer("/lib/");
- buf.append(GccProcessor.getMachine());
- buf.append('/');
- buf.append(GccProcessor.getVersion());
- buf.append("/include");
- defaultInclude[0] = buf.toString();
- //
- // read specs file and look for -istart and -idirafter
- //
- String[] specs = GccProcessor.getSpecs();
- String[][] optionValues = GccProcessor.parseSpecs(specs, "*cpp:",
- new String[]{"-isystem ", "-idirafter "});
- //
- // if no entries were found, then use a default path
- //
- if (optionValues[0].length == 0 && optionValues[1].length == 0) {
- optionValues[0] = new String[]{"/usr/local/include",
- "/usr/include", "/usr/include/win32api"};
- }
- //
- // remove mingw entries.
- // For MinGW compiles this will mean the
- // location of the sys includes will be
- // wrong in dependencies.xml
- // but that should have no significant effect
- for (int i = 0; i < optionValues.length; i++) {
- for (int j = 0; j < optionValues[i].length; j++) {
- if (optionValues[i][j].indexOf("mingw") > 0) {
- optionValues[i][j] = null;
- }
- }
- }
- //
- // if cygwin then
- // we have to prepend location of gcc32
- // and .. to start of absolute filenames to
- // have something that will exist in the
- // windows filesystem
- if (GccProcessor.isCygwin()) {
- GccProcessor.convertCygwinFilenames(optionValues[0]);
- GccProcessor.convertCygwinFilenames(optionValues[1]);
- GccProcessor.convertCygwinFilenames(defaultInclude);
- }
- int count = CUtil.checkDirectoryArray(optionValues[0]);
- count += CUtil.checkDirectoryArray(optionValues[1]);
- count += CUtil.checkDirectoryArray(defaultInclude);
- includePath = new File[count];
- int index = 0;
- for (int i = 0; i < optionValues.length; i++) {
- for (int j = 0; j < optionValues[i].length; j++) {
- if (optionValues[i][j] != null) {
- includePath[index++] = new File(optionValues[i][j]);
- }
- }
- }
- for (int i = 0; i < defaultInclude.length; i++) {
- if (defaultInclude[i] != null) {
- includePath[index++] = new File(defaultInclude[i]);
- }
- }
- }
- return (File[]) includePath.clone();
- }
- public String getIdentifier() throws BuildException {
- if (identifier == null) {
- StringBuffer buf;
- if (getLibtool()) {
- buf = new StringBuffer("libtool ");
- } else {
- buf = new StringBuffer(' ');
- }
- buf.append(getCommand());
- buf.append(' ');
- buf.append(GccProcessor.getVersion());
- buf.append(' ');
- buf.append(GccProcessor.getMachine());
- identifier = buf.toString();
- }
- return identifier;
- }
- public Linker getLinker(LinkType linkType) {
- return GccLinker.getInstance().getLinker(linkType);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- private void supercompile(CCTask task, File outputDir,
- String[] sourceFiles, String[] args, String[] endArgs,
- boolean relentless, CommandLineCompilerConfiguration config,
- ProgressMonitor monitor) throws BuildException {
- super.compile(task, outputDir, sourceFiles, args, endArgs, relentless,
- config, monitor);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java deleted file mode 100644 index ea2278a6e7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLibrarian.java +++ /dev/null @@ -1,69 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.LinkerParam;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractArLibrarian;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the 'ar' archiver
- *
- * @author Adam Murdoch
- */
-public final class GccLibrarian extends AbstractArLibrarian {
- private static String[] objFileExtensions = new String[]{".o"};
- private static GccLibrarian instance = new GccLibrarian("ar",
- objFileExtensions, false, new GccLibrarian("ar", objFileExtensions,
- true, null));
- public static GccLibrarian getInstance() {
- return instance;
- }
- private GccLibrarian(String command, String[] inputExtensions,
- boolean isLibtool, GccLibrarian libtoolLibrarian) {
- super(command, "V", inputExtensions, new String[0], "lib", ".a",
- isLibtool, libtoolLibrarian);
- }
- protected Object clone() throws CloneNotSupportedException {
- GccLibrarian clone = (GccLibrarian) super.clone();
- return clone;
- }
- public Linker getLinker(LinkType type) {
- return GccLinker.getInstance().getLinker(type);
- }
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- try {
- GccLibrarian clone = (GccLibrarian) this.clone();
- LinkerParam param = config.getParam("target");
- if (param != null)
- clone.setCommand(param.getValue() + "-" + this.getCommand());
- clone.superlink(task, outputFile, sourceFiles, config);
- } catch (CloneNotSupportedException e) {
- superlink(task, outputFile, sourceFiles, config);
- }
- }
- private void superlink(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- super.link(task, outputFile, sourceFiles, config);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java deleted file mode 100644 index 3293829d13..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccLinker.java +++ /dev/null @@ -1,234 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross;
-import java.io.File;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.LinkerParam;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the GCC linker
- *
- * @author Adam Murdoch
- */
-public class GccLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final GccLinker dllLinker = new GccLinker("gcc", objFiles,
- discardFiles, "lib", ".so", false, new GccLinker("gcc", objFiles,
- discardFiles, "lib", ".so", true, null));
- private static final GccLinker instance = new GccLinker("gcc", objFiles,
- discardFiles, "", "", false, null);
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static String[] linkerOptions = new String[]{"-bundle",
- "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s",
- "-static", "-shared", "-symbolic", "-Xlinker",
- "--export-all-symbols", "-static-libgcc",};
- private static final GccLinker machBundleLinker = new GccLinker("gcc",
- objFiles, discardFiles, "lib", ".bundle", false, null);
- private static final GccLinker machDllLinker = new GccLinker("gcc",
- objFiles, discardFiles, "lib", ".dylib", false, null);
- public static GccLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- protected GccLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GccLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- super.addImpliedArgs(debug, linkType, args, defaultflag);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- }
- protected Object clone() throws CloneNotSupportedException {
- GccLinker clone = (GccLinker) super.clone();
- return clone;
- }
- /**
- * Allows drived linker to decorate linker option. Override by GccLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g' :
- case 'f' :
- case 'F' :
- /* Darwin */
- case 'm' :
- case 'O' :
- case 'W' :
- case 'l' :
- case 'L' :
- case 'u' :
- case 'v' :
- break;
- default :
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- //
- // construct gcc lib path from machine and version
- //
- StringBuffer buf = new StringBuffer("/lib/gcc-lib/");
- buf.append(GccProcessor.getMachine());
- buf.append('/');
- buf.append(GccProcessor.getVersion());
- //
- // build default path from gcc and system /lib and /lib/w32api
- //
- String[] impliedLibPath = new String[]{buf.toString(),
- "/lib/w32api", "/lib"};
- //
- // read gcc specs file for other library paths
- //
- String[] specs = GccProcessor.getSpecs();
- String[][] libpaths = GccProcessor.parseSpecs(specs, "*link:",
- new String[]{"%q"});
- String[] libpath;
- if (libpaths[0].length > 0) {
- libpath = new String[libpaths[0].length + 3];
- int i = 0;
- for (; i < libpaths[0].length; i++) {
- libpath[i] = libpaths[0][i];
- }
- libpath[i++] = buf.toString();
- libpath[i++] = "/lib/w32api";
- libpath[i++] = "/lib";
- } else {
- //
- // if a failure to find any matches then
- // use some default values for lib path entries
- libpath = new String[]{"/usr/local/lib/mingw",
- "/usr/local/lib", "/usr/lib/w32api", "/usr/lib/mingw",
- "/usr/lib", buf.toString(), "/lib/w32api", "/lib"};
- }
- for (int i = 0; i < libpath.length; i++) {
- if (libpath[i].indexOf("mingw") >= 0) {
- libpath[i] = null;
- }
- }
- //
- // if cygwin then
- // we have to prepend location of gcc32
- // and .. to start of absolute filenames to
- // have something that will exist in the
- // windows filesystem
- if (GccProcessor.isCygwin()) {
- GccProcessor.convertCygwinFilenames(libpath);
- }
- //
- // check that remaining entries are actual directories
- //
- int count = CUtil.checkDirectoryArray(libpath);
- //
- // populate return array with remaining entries
- //
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; i++) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isPluginModule()) {
- if (isDarwin()) {
- return machBundleLinker;
- } else {
- return dllLinker;
- }
- }
- if (type.isSharedLibrary()) {
- if (isDarwin()) {
- return machDllLinker;
- } else {
- return dllLinker;
- }
- }
- return instance;
- }
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- try {
- GccLinker clone = (GccLinker) this.clone();
- LinkerParam param = config.getParam("target");
- if (param != null)
- clone.setCommand(param.getValue() + "-" + this.getCommand());
- clone.superlink(task, outputFile, sourceFiles, config);
- } catch (CloneNotSupportedException e) {
- superlink(task, outputFile, sourceFiles, config);
- }
- }
- private void superlink(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- super.link(task, outputFile, sourceFiles, config);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java deleted file mode 100644 index 283df63314..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java +++ /dev/null @@ -1,288 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
-
-/**
- * A add-in class for Gcc processors
- *
- *
- */
-public class GccProcessor {
- // the results from gcc -dumpmachine
- private static String machine;
- private static String[] specs;
- // the results from gcc -dumpversion
- private static String version;
- private static int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
- /**
- * Converts absolute Cygwin file or directory names to the corresponding
- * Win32 name.
- *
- * @param names
- * array of names, some elements may be null, will be changed in
- * place.
- */
- public static void convertCygwinFilenames(String[] names) {
- if (names == null) {
- throw new NullPointerException("names");
- }
- File gccDir = CUtil.getExecutableLocation("gcc.exe");
- if (gccDir != null) {
- String prefix = gccDir.getAbsolutePath() + "/..";
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < names.length; i++) {
- String name = names[i];
- if (name != null && name.length() > 1 && name.charAt(0) == '/') {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(name);
- names[i] = buf.toString();
- }
- }
- }
- }
-
- public static String getMachine() {
- if (machine == null) {
- String[] args = new String[]{"gcc", "-dumpmachine"};
- String[] cmdout = CaptureStreamHandler.run(args);
- if (cmdout.length == 0) {
- machine = "nomachine";
- } else {
- machine = cmdout[0];
- }
- }
- return machine;
- }
- public static String[] getOutputFileSwitch(String letter, String outputFile) {
- StringBuffer buf = new StringBuffer();
- if (outputFile.indexOf(' ') >= 0) {
- buf.append('"');
- buf.append(outputFile.replace('\\', '/'));
- buf.append('"');
- } else {
- buf.append(outputFile.replace('\\', '/'));
- }
- String[] retval = new String[]{letter, buf.toString()};
- return retval;
- }
- /**
- * Returns the contents of the gcc specs file.
- *
- * The implementation locates gcc.exe in the executable path and then
- * builds a relative path name from the results of -dumpmachine and
- * -dumpversion. Attempts to use gcc -dumpspecs to provide this information
- * resulted in stalling on the Execute.run
- *
- * @returns contents of the specs file
- */
- public static String[] getSpecs() {
- if (specs == null) {
- File gccParent = CUtil.getExecutableLocation("gcc.exe");
- if (gccParent != null) {
- //
- // build a relative path like
- // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs
- //
- StringBuffer buf = new StringBuffer("../lib/gcc-lib/");
- buf.append(getMachine());
- buf.append('/');
- buf.append(getVersion());
- buf.append("/specs");
- //
- // resolve it relative to the location of gcc.exe
- //
- String relativePath = buf.toString();
- File specsFile = new File(gccParent, relativePath);
- //
- // found the specs file
- //
- try {
- //
- // read the lines in the file
- //
- BufferedReader reader = new BufferedReader(new FileReader(
- specsFile));
- Vector lines = new Vector(100);
- String line = reader.readLine();
- while (line != null) {
- lines.addElement(line);
- line = reader.readLine();
- }
- specs = new String[lines.size()];
- lines.copyInto(specs);
- } catch (IOException ex) {
- }
- }
- }
- if (specs == null) {
- specs = new String[0];
- }
- return specs;
- }
- public static String getVersion() {
- if (version == null) {
- String[] args = new String[]{"gcc", "-dumpversion"};
- String[] cmdout = CaptureStreamHandler.run(args);
- if (cmdout.length == 0) {
- version = "noversion";
- } else {
- version = cmdout[0];
- }
- }
- return version;
- }
- public static boolean isCaseSensitive() {
- return true;
- }
- /**
- * Determines if task is running with cygwin
- *
- * @return true if cygwin was detected
- */
- public static boolean isCygwin() {
- return getMachine().indexOf("cygwin") > 0;
- }
- private static boolean isHPUX() {
- String osname = System.getProperty("os.name").toLowerCase();
- if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) {
- return true;
- }
- return false;
- }
- /**
- *
- * Parses the results of the specs file for a specific processor and
- * options
- *
- * @param specsContent
- * Contents of specs file as returned from getSpecs
- * @param specSectionStart
- * start of spec section, for example "*cpp:"
- * @param options
- * command line switches such as "-istart"
- */
- public static String[][] parseSpecs(String[] specsContent,
- String specSectionStart, String[] options) {
- if (specsContent == null) {
- throw new NullPointerException("specsContent");
- }
- if (specSectionStart == null) {
- throw new NullPointerException("specSectionStart");
- }
- if (options == null) {
- throw new NullPointerException("option");
- }
- String[][] optionValues = new String[options.length][];
- StringBuffer optionValue = new StringBuffer(40);
- for (int i = 0; i < specsContent.length; i++) {
- String specLine = specsContent[i];
- //
- // if start of section then start paying attention
- //
- if (specLine.startsWith(specSectionStart)) {
- Vector[] optionVectors = new Vector[options.length];
- for (int j = 0; j < options.length; j++) {
- optionVectors[j] = new Vector(10);
- }
- //
- // go to next line and examine contents
- // and repeat until end of file
- //
- for (i++; i < specsContent.length; i++) {
- specLine = specsContent[i];
- for (int j = 0; j < options.length; j++) {
- int optionStart = specLine.indexOf(options[j]);
- while (optionStart >= 0) {
- optionValue.setLength(0);
- //
- // walk rest of line looking for first non
- // whitespace
- // and then next space
- boolean hasNonBlank = false;
- int k = optionStart + options[j].length();
- for (; k < specLine.length(); k++) {
- //
- // either a blank or a "}" (close of
- // conditional)
- // section will end the path
- //
- if (specLine.charAt(k) == ' '
- || specLine.charAt(k) == '}') {
- if (hasNonBlank) {
- break;
- }
- } else {
- hasNonBlank = true;
- optionValue.append(specLine.charAt(k));
- }
- }
- //
- // transition back to whitespace
- // value is over, add it to vector
- if (hasNonBlank) {
- optionVectors[j].addElement(optionValue
- .toString());
- }
- //
- // find next occurance on line
- //
- optionStart = specLine.indexOf(options[j], k);
- }
- }
- }
- //
- // copy vectors over to option arrays
- //
- for (int j = 0; j < options.length; j++) {
- optionValues[j] = new String[optionVectors[j].size()];
- optionVectors[j].copyInto(optionValues[j]);
- }
- }
- }
- //
- // fill in any missing option values with
- // a zero-length string array
- for (int i = 0; i < optionValues.length; i++) {
- String[] zeroLenArray = new String[0];
- if (optionValues[i] == null) {
- optionValues[i] = zeroLenArray;
- }
- }
- return optionValues;
- }
- private GccProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java deleted file mode 100644 index 3ba8f06bf8..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/GppLinker.java +++ /dev/null @@ -1,228 +0,0 @@ -/*
- *
- * Copyright 2003-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.LinkerParam;
-import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the g++ variant of the GCC linker
- *
- * @author Stephen M. Webb <stephen.webb@bregmasoft.com>
- */
-public class GppLinker extends AbstractLdLinker {
- protected static final String[] discardFiles = new String[0];
- protected static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final GppLinker dllLinker = new GppLinker("gcc", objFiles,
- discardFiles, "lib", ".so", false, new GppLinker("gcc", objFiles,
- discardFiles, "lib", ".so", true, null));
- private final static String libPrefix = "libraries: =";
- protected static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static String[] linkerOptions = new String[]{"-bundle", "-dylib",
- "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib",
- "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"};
- private static final GppLinker instance = new GppLinker("gcc", objFiles,
- discardFiles, "", "", false, null);
- private static final GppLinker machDllLinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".dylib", false, null);
- private static final GppLinker machPluginLinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".bundle", false, null);
- public static GppLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private String runtimeLibrary;
- protected GppLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- super.addImpliedArgs(debug, linkType, args, defaultflag);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- if (linkType.isStaticRuntime()) {
- String[] cmdin = new String[]{"g++", "-print-file-name=libstdc++.a"};
- String[] cmdout = CaptureStreamHandler.run(cmdin);
- if (cmdout.length > 0) {
- runtimeLibrary = cmdout[0];
- } else {
- runtimeLibrary = null;
- }
- } else {
- runtimeLibrary = "-lstdc++";
- }
- }
- public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- String[] rs = super.addLibrarySets(task, libsets, preargs, midargs,
- endargs);
- if (runtimeLibrary != null) {
- endargs.addElement(runtimeLibrary);
- }
- return rs;
- }
- protected Object clone() throws CloneNotSupportedException {
- GppLinker clone = (GppLinker) super.clone();
- return clone;
- }
- /**
- * Allows drived linker to decorate linker option. Override by GppLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g' :
- case 'f' :
- case 'F' :
- /* Darwin */
- case 'm' :
- case 'O' :
- case 'W' :
- case 'l' :
- case 'L' :
- case 'u' :
- break;
- default :
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- Vector dirs = new Vector();
- // Ask GCC where it will look for its libraries.
- String[] args = new String[]{"g++", "-print-search-dirs"};
- String[] cmdout = CaptureStreamHandler.run(args);
- for (int i = 0; i < cmdout.length; ++i) {
- int prefixIndex = cmdout[i].indexOf(libPrefix);
- if (prefixIndex >= 0) {
- // Special case DOS-type GCCs like MinGW or Cygwin
- int s = prefixIndex + libPrefix.length();
- int t = cmdout[i].indexOf(';', s);
- while (t > 0) {
- dirs.addElement(cmdout[i].substring(s, t));
- s = t + 1;
- t = cmdout[i].indexOf(';', s);
- }
- dirs.addElement(cmdout[i].substring(s));
- ++i;
- for (; i < cmdout.length; ++i) {
- dirs.addElement(cmdout[i]);
- }
- }
- }
- // Eliminate all but actual directories.
- String[] libpath = new String[dirs.size()];
- dirs.copyInto(libpath);
- int count = CUtil.checkDirectoryArray(libpath);
- // Build return array.
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; ++i) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isPluginModule()) {
- if (GccProcessor.getMachine().indexOf("darwin") >= 0) {
- return machPluginLinker;
- } else {
- return dllLinker;
- }
- }
- if (type.isSharedLibrary()) {
- if (GccProcessor.getMachine().indexOf("darwin") >= 0) {
- return machDllLinker;
- } else {
- return dllLinker;
- }
- }
- return instance;
- }
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- try {
- GppLinker clone = (GppLinker) this.clone();
- LinkerParam param = config.getParam("target");
- if (param != null)
- clone.setCommand(param.getValue() + "-" + this.getCommand());
- clone.superlink(task, outputFile, sourceFiles, config);
- } catch (CloneNotSupportedException e) {
- superlink(task, outputFile, sourceFiles, config);
- }
- }
- private void superlink(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- super.link(task, outputFile, sourceFiles, config);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java deleted file mode 100644 index 8ac0cf82a7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/LdLinker.java +++ /dev/null @@ -1,83 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.LinkerParam;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the 'ld' linker
- *
- * @author Curt Arnold
- */
-public final class LdLinker extends AbstractLdLinker {
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final String[] discardFiles = new String[0];
- private static final LdLinker dllLinker = new LdLinker("ld", objFiles,
- discardFiles, "lib", ".so", false, new LdLinker("ld", objFiles,
- discardFiles, "lib", ".so", true, null));
- private static final LdLinker instance = new LdLinker("ld", objFiles,
- discardFiles, "", "", false, null);
- public static LdLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private LdLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, LdLinker libtoolLinker) {
- super(command, "-version", extensions, ignoredExtensions, outputPrefix,
- outputSuffix, isLibtool, libtoolLinker);
- }
- protected Object clone() throws CloneNotSupportedException {
- LdLinker clone = (LdLinker) super.clone();
- return clone;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- try {
- LdLinker clone = (LdLinker) this.clone();
- LinkerParam param = config.getParam("target");
- if (param != null)
- clone.setCommand(param.getValue() + "-" + this.getCommand());
- clone.superlink(task, outputFile, sourceFiles, config);
- } catch (CloneNotSupportedException e) {
- superlink(task, outputFile, sourceFiles, config);
- }
- }
- private void superlink(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- super.link(task, outputFile, sourceFiles, config);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java deleted file mode 100644 index 62d65b910c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccCCompiler.java +++ /dev/null @@ -1,245 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-import net.sf.antcontrib.cpptasks.parser.CParser;
-import net.sf.antcontrib.cpptasks.parser.FortranParser;
-import net.sf.antcontrib.cpptasks.parser.Parser;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Environment;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-/**
- * Adapter for the GCC C/C++ compiler
- *
- * @author Adam Murdoch
- */
-public final class GccCCompiler extends GccCompatibleCCompiler {
- private final static String[] sourceExtensions = new String[]{".c", /* C */
- ".cc", /* C++ */
- ".cpp", /* C++ */
- ".cxx", /* C++ */
- ".c++", /* C++ */
- ".i", /* preprocessed C */
- ".ii", /* preprocessed C++ */
- ".f", /* FORTRAN */
- ".for", /* FORTRAN */
- ".m", /* Objective-C */
- ".mm", /* Objected-C++ */
- ".s" /* Assembly */
- };
- private final static String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- public static final String CMD_PREFIX = "sparc-sun-solaris2-";
- private static final GccCCompiler cppInstance = new GccCCompiler(CMD_PREFIX
- + "c++", sourceExtensions, headerExtensions, false,
- new GccCCompiler(CMD_PREFIX + "c++", sourceExtensions,
- headerExtensions, true, null, false, null), false, null);
- private static final GccCCompiler g77Instance = new GccCCompiler(CMD_PREFIX
- + "g77", sourceExtensions, headerExtensions, false,
- new GccCCompiler(CMD_PREFIX + "g77", sourceExtensions,
- headerExtensions, true, null, false, null), false, null);
- private static final GccCCompiler gppInstance = new GccCCompiler(CMD_PREFIX
- + "g++", sourceExtensions, headerExtensions, false,
- new GccCCompiler(CMD_PREFIX + "g++", sourceExtensions,
- headerExtensions, true, null, false, null), false, null);
- private static final GccCCompiler instance = new GccCCompiler(CMD_PREFIX
- + "gcc", sourceExtensions, headerExtensions, false,
- new GccCCompiler(CMD_PREFIX + "gcc", sourceExtensions,
- headerExtensions, true, null, false, null), false, null);
- /**
- * Gets c++ adapter
- */
- public static GccCCompiler getCppInstance() {
- return cppInstance;
- }
- /**
- * Gets g77 adapter
- */
- public static GccCCompiler getG77Instance() {
- return g77Instance;
- }
- /**
- * Gets gpp adapter
- */
- public static GccCCompiler getGppInstance() {
- return gppInstance;
- }
- /**
- * Gets gcc adapter
- */
- public static GccCCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private File[] includePath;
- private boolean isPICMeaningful = true;
- /**
- * Private constructor. Use GccCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- private GccCCompiler(String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool,
- GccCCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super(command, null, sourceExtensions, headerExtensions, isLibtool,
- libtoolCompiler, newEnvironment, env);
- isPICMeaningful = System.getProperty("os.name").indexOf("Windows") < 0;
- }
- public void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- super.addImpliedArgs(args, debug, multithreaded,
- exceptions, linkType, rtti, optimization, defaultflag);
- if (isPICMeaningful && linkType.isSharedLibrary()) {
- args.addElement("-fPIC");
- }
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new GccCCompiler(getCommand(), this.getSourceExtensions(),
- this.getHeaderExtensions(), this.getLibtool(),
- (GccCCompiler) this.getLibtoolCompiler(), newEnvironment,
- env);
- }
- return this;
- }
- /**
- * Create parser to determine dependencies.
- *
- * Will create appropriate parser (C++, FORTRAN) based on file extension.
- *
- */
- protected Parser createParser(File source) {
- if (source != null) {
- String sourceName = source.getName();
- int lastDot = sourceName.lastIndexOf('.');
- if (lastDot >= 0 && lastDot + 1 < sourceName.length()) {
- char afterDot = sourceName.charAt(lastDot + 1);
- if (afterDot == 'f' || afterDot == 'F') {
- return new FortranParser();
- }
- }
- }
- return new CParser();
- }
- public File[] getEnvironmentIncludePath() {
- if (includePath == null) {
- //
- // construct default include path from machine id and version id
- //
- String[] defaultInclude = new String[1];
- StringBuffer buf = new StringBuffer("/lib/");
- buf.append(GccProcessor.getMachine());
- buf.append('/');
- buf.append(GccProcessor.getVersion());
- buf.append("/include");
- defaultInclude[0] = buf.toString();
- //
- // read specs file and look for -istart and -idirafter
- //
- String[] specs = GccProcessor.getSpecs();
- String[][] optionValues = GccProcessor.parseSpecs(specs, "*cpp:",
- new String[]{"-isystem ", "-idirafter "});
- //
- // if no entries were found, then use a default path
- //
- if (optionValues[0].length == 0 && optionValues[1].length == 0) {
- optionValues[0] = new String[]{"/usr/local/include",
- "/usr/include", "/usr/include/win32api"};
- }
- //
- // remove mingw entries.
- // For MinGW compiles this will mean the
- // location of the sys includes will be
- // wrong in dependencies.xml
- // but that should have no significant effect
- for (int i = 0; i < optionValues.length; i++) {
- for (int j = 0; j < optionValues[i].length; j++) {
- if (optionValues[i][j].indexOf("mingw") > 0) {
- optionValues[i][j] = null;
- }
- }
- }
- //
- // if cygwin then
- // we have to prepend location of gcc32
- // and .. to start of absolute filenames to
- // have something that will exist in the
- // windows filesystem
- if (GccProcessor.isCygwin()) {
- GccProcessor.convertCygwinFilenames(optionValues[0]);
- GccProcessor.convertCygwinFilenames(optionValues[1]);
- GccProcessor.convertCygwinFilenames(defaultInclude);
- }
- int count = CUtil.checkDirectoryArray(optionValues[0]);
- count += CUtil.checkDirectoryArray(optionValues[1]);
- count += CUtil.checkDirectoryArray(defaultInclude);
- includePath = new File[count];
- int index = 0;
- for (int i = 0; i < optionValues.length; i++) {
- for (int j = 0; j < optionValues[i].length; j++) {
- if (optionValues[i][j] != null) {
- includePath[index++] = new File(optionValues[i][j]);
- }
- }
- }
- for (int i = 0; i < defaultInclude.length; i++) {
- if (defaultInclude[i] != null) {
- includePath[index++] = new File(defaultInclude[i]);
- }
- }
- }
- return (File[]) includePath.clone();
- }
- public String getIdentifier() throws BuildException {
- if (identifier == null) {
- StringBuffer buf;
- if (getLibtool()) {
- buf = new StringBuffer("libtool ");
- } else {
- buf = new StringBuffer(' ');
- }
- buf.append(getCommand());
- buf.append(' ');
- buf.append(GccProcessor.getVersion());
- buf.append(' ');
- buf.append(GccProcessor.getMachine());
- identifier = buf.toString();
- }
- return identifier;
- }
- public Linker getLinker(LinkType linkType) {
- return GccLinker.getInstance().getLinker(linkType);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java deleted file mode 100644 index bb243879af..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLibrarian.java +++ /dev/null @@ -1,43 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractArLibrarian;
-/**
- * Adapter for the 'ar' archiver
- *
- * @author Adam Murdoch
- */
-public final class GccLibrarian extends AbstractArLibrarian {
- private static String[] objFileExtensions = new String[]{".o"};
- private static GccLibrarian instance = new GccLibrarian(
- GccCCompiler.CMD_PREFIX + "ar", objFileExtensions, false,
- new GccLibrarian(GccCCompiler.CMD_PREFIX + "ar", objFileExtensions,
- true, null));
- public static GccLibrarian getInstance() {
- return instance;
- }
- private GccLibrarian(String command, String[] inputExtensions,
- boolean isLibtool, GccLibrarian libtoolLibrarian) {
- super(command, "V", inputExtensions, new String[0], "lib", ".a",
- isLibtool, libtoolLibrarian);
- }
- public Linker getLinker(LinkType type) {
- return GccLinker.getInstance().getLinker(type);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java deleted file mode 100644 index 914da34439..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccLinker.java +++ /dev/null @@ -1,215 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-/**
- * Adapter for the GCC linker
- *
- * @author Adam Murdoch
- */
-public class GccLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static String[] linkerOptions = new String[]{"-bundle",
- "-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind", "-s",
- "-static", "-shared", "-symbolic", "-Xlinker",
- "--export-all-symbols", "-static-libgcc",};
- private static final GccLinker dllLinker = new GccLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib",
- ".so", false, new GccLinker(GccCCompiler.CMD_PREFIX + "gcc",
- objFiles, discardFiles, "lib", ".so", true, null));
- private static final GccLinker instance = new GccLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "", "",
- false, null);
- private static final GccLinker machBundleLinker = new GccLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib",
- ".bundle", false, null);
- private static final GccLinker machDllLinker = new GccLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib",
- ".dylib", false, null);
- public static GccLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- protected GccLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GccLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- super.addImpliedArgs(debug, linkType, args, defaultflag);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- }
- /**
- * Allows drived linker to decorate linker option. Override by GccLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g' :
- case 'f' :
- case 'F' :
- /* Darwin */
- case 'm' :
- case 'O' :
- case 'W' :
- case 'l' :
- case 'L' :
- case 'u' :
- case 'v' :
- break;
- default :
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- //
- // construct gcc lib path from machine and version
- //
- StringBuffer buf = new StringBuffer("/lib/gcc-lib/");
- buf.append(GccProcessor.getMachine());
- buf.append('/');
- buf.append(GccProcessor.getVersion());
- //
- // build default path from gcc and system /lib and /lib/w32api
- //
- String[] impliedLibPath = new String[]{buf.toString(),
- "/lib/w32api", "/lib"};
- //
- // read gcc specs file for other library paths
- //
- String[] specs = GccProcessor.getSpecs();
- String[][] libpaths = GccProcessor.parseSpecs(specs, "*link:",
- new String[]{"%q"});
- String[] libpath;
- if (libpaths[0].length > 0) {
- libpath = new String[libpaths[0].length + 3];
- int i = 0;
- for (; i < libpaths[0].length; i++) {
- libpath[i] = libpaths[0][i];
- }
- libpath[i++] = buf.toString();
- libpath[i++] = "/lib/w32api";
- libpath[i++] = "/lib";
- } else {
- //
- // if a failure to find any matches then
- // use some default values for lib path entries
- libpath = new String[]{"/usr/local/lib/mingw",
- "/usr/local/lib", "/usr/lib/w32api", "/usr/lib/mingw",
- "/usr/lib", buf.toString(), "/lib/w32api", "/lib"};
- }
- for (int i = 0; i < libpath.length; i++) {
- if (libpath[i].indexOf("mingw") >= 0) {
- libpath[i] = null;
- }
- }
- //
- // if cygwin then
- // we have to prepend location of gcc32
- // and .. to start of absolute filenames to
- // have something that will exist in the
- // windows filesystem
- if (GccProcessor.isCygwin()) {
- GccProcessor.convertCygwinFilenames(libpath);
- }
- //
- // check that remaining entries are actual directories
- //
- int count = CUtil.checkDirectoryArray(libpath);
- //
- // populate return array with remaining entries
- //
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; i++) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isPluginModule()) {
- if (isDarwin()) {
- return machBundleLinker;
- } else {
- return dllLinker;
- }
- }
- if (type.isSharedLibrary()) {
- if (isDarwin()) {
- return machDllLinker;
- } else {
- return dllLinker;
- }
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java deleted file mode 100644 index 599d6a8013..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java +++ /dev/null @@ -1,305 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * A add-in class for Gcc processors
- *
- *
- */
-public class GccProcessor {
- // the results from gcc -dumpmachine
- private static String machine;
- private static String[] specs;
- // the results from gcc -dumpversion
- private static String version;
- private static int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
- /**
- * Converts absolute Cygwin file or directory names to the corresponding
- * Win32 name.
- *
- * @param names
- * array of names, some elements may be null, will be changed in
- * place.
- */
- public static void convertCygwinFilenames(String[] names) {
- if (names == null) {
- throw new NullPointerException("names");
- }
- File gccDir = CUtil.getExecutableLocation(GccCCompiler.CMD_PREFIX
- + "gcc.exe");
- if (gccDir != null) {
- String prefix = gccDir.getAbsolutePath() + "/..";
- StringBuffer buf = new StringBuffer();
- for (int i = 0; i < names.length; i++) {
- String name = names[i];
- if (name != null && name.length() > 1 && name.charAt(0) == '/') {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(name);
- names[i] = buf.toString();
- }
- }
- }
- }
- public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- String[] patterns = new String[libnames.length * 2];
- int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);
- if (isHPUX()) {
- offset = addLibraryPatterns(libnames, buf, "lib", ".sl", patterns,
- offset);
- } else {
- offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns,
- offset);
- }
- return patterns;
- }
- public static String getMachine() {
- if (machine == null) {
- String[] args = new String[]{GccCCompiler.CMD_PREFIX + "gcc",
- "-dumpmachine"};
- String[] cmdout = CaptureStreamHandler.run(args);
- if (cmdout.length == 0) {
- machine = "nomachine";
- } else {
- machine = cmdout[0];
- }
- }
- return machine;
- }
- public static String[] getOutputFileSwitch(String letter, String outputFile) {
- StringBuffer buf = new StringBuffer();
- if (outputFile.indexOf(' ') >= 0) {
- buf.append('"');
- buf.append(outputFile.replace('\\', '/'));
- buf.append('"');
- } else {
- buf.append(outputFile.replace('\\', '/'));
- }
- String[] retval = new String[]{letter, buf.toString()};
- return retval;
- }
- /**
- * Returns the contents of the gcc specs file.
- *
- * The implementation locates gcc.exe in the executable path and then
- * builds a relative path name from the results of -dumpmachine and
- * -dumpversion. Attempts to use gcc -dumpspecs to provide this information
- * resulted in stalling on the Execute.run
- *
- * @returns contents of the specs file
- */
- public static String[] getSpecs() {
- if (specs == null) {
- File gccParent = CUtil
- .getExecutableLocation(GccCCompiler.CMD_PREFIX + "gcc.exe");
- if (gccParent != null) {
- //
- // build a relative path like
- // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs
- //
- StringBuffer buf = new StringBuffer("../lib/gcc-lib/");
- buf.append(getMachine());
- buf.append('/');
- buf.append(getVersion());
- buf.append("/specs");
- //
- // resolve it relative to the location of gcc.exe
- //
- String relativePath = buf.toString();
- File specsFile = new File(gccParent, relativePath);
- //
- // found the specs file
- //
- try {
- //
- // read the lines in the file
- //
- BufferedReader reader = new BufferedReader(new FileReader(
- specsFile));
- Vector lines = new Vector(100);
- String line = reader.readLine();
- while (line != null) {
- lines.addElement(line);
- line = reader.readLine();
- }
- specs = new String[lines.size()];
- lines.copyInto(specs);
- } catch (IOException ex) {
- }
- }
- }
- if (specs == null) {
- specs = new String[0];
- }
- return specs;
- }
- public static String getVersion() {
- if (version == null) {
- String[] args = new String[]{GccCCompiler.CMD_PREFIX + "gcc",
- "-dumpversion"};
- String[] cmdout = CaptureStreamHandler.run(args);
- if (cmdout.length == 0) {
- version = "noversion";
- } else {
- version = cmdout[0];
- }
- }
- return version;
- }
- public static boolean isCaseSensitive() {
- return true;
- }
- /**
- * Determines if task is running with cygwin
- *
- * @return true if cygwin was detected
- */
- public static boolean isCygwin() {
- return getMachine().indexOf("cygwin") > 0;
- }
- private static boolean isHPUX() {
- String osname = System.getProperty("os.name").toLowerCase();
- if (osname.indexOf("hp") >= 0 && osname.indexOf("ux") >= 0) {
- return true;
- }
- return false;
- }
- /**
- *
- * Parses the results of the specs file for a specific processor and
- * options
- *
- * @param specsContent
- * Contents of specs file as returned from getSpecs
- * @param specSectionStart
- * start of spec section, for example "*cpp:"
- * @param options
- * command line switches such as "-istart"
- */
- public static String[][] parseSpecs(String[] specsContent,
- String specSectionStart, String[] options) {
- if (specsContent == null) {
- throw new NullPointerException("specsContent");
- }
- if (specSectionStart == null) {
- throw new NullPointerException("specSectionStart");
- }
- if (options == null) {
- throw new NullPointerException("option");
- }
- String[][] optionValues = new String[options.length][];
- StringBuffer optionValue = new StringBuffer(40);
- for (int i = 0; i < specsContent.length; i++) {
- String specLine = specsContent[i];
- //
- // if start of section then start paying attention
- //
- if (specLine.startsWith(specSectionStart)) {
- Vector[] optionVectors = new Vector[options.length];
- for (int j = 0; j < options.length; j++) {
- optionVectors[j] = new Vector(10);
- }
- //
- // go to next line and examine contents
- // and repeat until end of file
- //
- for (i++; i < specsContent.length; i++) {
- specLine = specsContent[i];
- for (int j = 0; j < options.length; j++) {
- int optionStart = specLine.indexOf(options[j]);
- while (optionStart >= 0) {
- optionValue.setLength(0);
- //
- // walk rest of line looking for first non
- // whitespace
- // and then next space
- boolean hasNonBlank = false;
- int k = optionStart + options[j].length();
- for (; k < specLine.length(); k++) {
- //
- // either a blank or a "}" (close of
- // conditional)
- // section will end the path
- //
- if (specLine.charAt(k) == ' '
- || specLine.charAt(k) == '}') {
- if (hasNonBlank) {
- break;
- }
- } else {
- hasNonBlank = true;
- optionValue.append(specLine.charAt(k));
- }
- }
- //
- // transition back to whitespace
- // value is over, add it to vector
- if (hasNonBlank) {
- optionVectors[j].addElement(optionValue
- .toString());
- }
- //
- // find next occurance on line
- //
- optionStart = specLine.indexOf(options[j], k);
- }
- }
- }
- //
- // copy vectors over to option arrays
- //
- for (int j = 0; j < options.length; j++) {
- optionValues[j] = new String[optionVectors[j].size()];
- optionVectors[j].copyInto(optionValues[j]);
- }
- }
- }
- //
- // fill in any missing option values with
- // a zero-length string array
- for (int i = 0; i < optionValues.length; i++) {
- String[] zeroLenArray = new String[0];
- if (optionValues[i] == null) {
- optionValues[i] = zeroLenArray;
- }
- }
- return optionValues;
- }
- private GccProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java deleted file mode 100644 index 6a4c0ab14b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GppLinker.java +++ /dev/null @@ -1,210 +0,0 @@ -/*
- *
- * Copyright 2003-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-/**
- * Adapter for the g++ variant of the GCC linker
- *
- * @author Stephen M. Webb <stephen.webb@bregmasoft.com>
- */
-public class GppLinker extends AbstractLdLinker {
- protected static final String[] discardFiles = new String[0];
- protected static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private final static String libPrefix = "libraries: =";
- protected static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static String[] linkerOptions = new String[]{"-bundle", "-dylib",
- "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib",
- "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker"};
- private static final GppLinker dllLinker = new GppLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib",
- ".so", false, new GppLinker(GccCCompiler.CMD_PREFIX + "gcc",
- objFiles, discardFiles, "lib", ".so", true, null));
- private static final GppLinker instance = new GppLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "", "",
- false, null);
- private static final GppLinker machDllLinker = new GppLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib",
- ".dylib", false, null);
- private static final GppLinker machPluginLinker = new GppLinker(
- GccCCompiler.CMD_PREFIX + "gcc", objFiles, discardFiles, "lib",
- ".bundle", false, null);
- public static GppLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private String runtimeLibrary;
- protected GppLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- super.addImpliedArgs(debug, linkType, args, defaultflag);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
- if (linkType.isStaticRuntime()) {
- String[] cmdin = new String[]{GccCCompiler.CMD_PREFIX + "g++",
- "-print-file-name=libstdc++.a"};
- String[] cmdout = CaptureStreamHandler.run(cmdin);
- if (cmdout.length > 0) {
- runtimeLibrary = cmdout[0];
- } else {
- runtimeLibrary = null;
- }
- } else {
- runtimeLibrary = "-lstdc++";
- }
- }
- public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- String[] rs = super.addLibrarySets(task, libsets, preargs, midargs,
- endargs);
- if (runtimeLibrary != null) {
- endargs.addElement(runtimeLibrary);
- }
- return rs;
- }
- /**
- * Allows drived linker to decorate linker option. Override by GppLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g' :
- case 'f' :
- case 'F' :
- /* Darwin */
- case 'm' :
- case 'O' :
- case 'W' :
- case 'l' :
- case 'L' :
- case 'u' :
- break;
- default :
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- Vector dirs = new Vector();
- // Ask GCC where it will look for its libraries.
- String[] args = new String[]{GccCCompiler.CMD_PREFIX + "g++",
- "-print-search-dirs"};
- String[] cmdout = CaptureStreamHandler.run(args);
- for (int i = 0; i < cmdout.length; ++i) {
- int prefixIndex = cmdout[i].indexOf(libPrefix);
- if (prefixIndex >= 0) {
- // Special case DOS-type GCCs like MinGW or Cygwin
- int s = prefixIndex + libPrefix.length();
- int t = cmdout[i].indexOf(';', s);
- while (t > 0) {
- dirs.addElement(cmdout[i].substring(s, t));
- s = t + 1;
- t = cmdout[i].indexOf(';', s);
- }
- dirs.addElement(cmdout[i].substring(s));
- ++i;
- for (; i < cmdout.length; ++i) {
- dirs.addElement(cmdout[i]);
- }
- }
- }
- // Eliminate all but actual directories.
- String[] libpath = new String[dirs.size()];
- dirs.copyInto(libpath);
- int count = CUtil.checkDirectoryArray(libpath);
- // Build return array.
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; ++i) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isPluginModule()) {
- if (GccProcessor.getMachine().indexOf("darwin") >= 0) {
- return machPluginLinker;
- } else {
- return dllLinker;
- }
- }
- if (type.isSharedLibrary()) {
- if (GccProcessor.getMachine().indexOf("darwin") >= 0) {
- return machDllLinker;
- } else {
- return dllLinker;
- }
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java deleted file mode 100644 index fc7761e87c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/LdLinker.java +++ /dev/null @@ -1,60 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.gcc.cross.sparc_sun_solaris2;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-/**
- * Adapter for the 'ld' linker
- *
- * @author Curt Arnold
- */
-public final class LdLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final LdLinker dllLinker = new LdLinker(
- GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "lib",
- ".so", false, new LdLinker(GccCCompiler.CMD_PREFIX + "ld",
- objFiles, discardFiles, "lib", ".so", true, null));
- private static final LdLinker instance = new LdLinker(
- GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "", "",
- false, null);
- public static LdLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private LdLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, LdLinker libtoolLinker) {
- super(command, "-version", extensions, ignoredExtensions, outputPrefix,
- outputSuffix, isLibtool, libtoolLinker);
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java deleted file mode 100644 index 951bfc1a75..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java +++ /dev/null @@ -1,104 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.hp;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the HP aC++ C++ compiler
- *
- * @author Curt Arnold
- */
-public final class aCCCompiler extends GccCompatibleCCompiler {
- private static final aCCCompiler instance = new aCCCompiler("aCC", false,
- null);
- /**
- * Gets singleton instance of this class
- */
- public static aCCCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private File[] includePath;
- /**
- * Private constructor. Use GccCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- private aCCCompiler(String command, boolean newEnvironment, Environment env) {
- super(command, "-help", false, null, newEnvironment, env);
- }
- public void addImpliedArgs(Vector args, boolean debug,
- boolean multithreaded, boolean exceptions, LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization) {
- args.addElement("-c");
- if (debug) {
- args.addElement("-g");
- }
- /*
- * if (multithreaded) { args.addElement("-mt"); }
- */
- if (linkType.isSharedLibrary()) {
- args.addElement("+z");
- }
- }
- public void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("-w");
- break;
- case 1 :
- case 2 :
- args.addElement("+w");
- break;
- /*
- * case 3: case 4: case 5: args.addElement("+w2"); break;
- */
- }
- }
- public File[] getEnvironmentIncludePath() {
- if (includePath == null) {
- File ccLoc = CUtil.getExecutableLocation("aCC");
- if (ccLoc != null) {
- File compilerIncludeDir = new File(
- new File(ccLoc, "../include").getAbsolutePath());
- if (compilerIncludeDir.exists()) {
- includePath = new File[2];
- includePath[0] = compilerIncludeDir;
- }
- }
- if (includePath == null) {
- includePath = new File[1];
- }
- includePath[includePath.length - 1] = new File("/usr/include");
- }
- return includePath;
- }
- public Linker getLinker(LinkType linkType) {
- return aCCLinker.getInstance().getLinker(linkType);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java deleted file mode 100644 index 86b22e0522..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/hp/aCCLinker.java +++ /dev/null @@ -1,100 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.hp;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-/**
- * Adapter for Sun (r) Forte(tm) C++ Linker
- *
- * @author Curt Arnold
- */
-public final class aCCLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final aCCLinker arLinker = new aCCLinker("aCC", objFiles,
- discardFiles, "", ".a");
- private static final aCCLinker dllLinker = new aCCLinker("aCC", objFiles,
- discardFiles, "lib", ".sl");
- private static final aCCLinker instance = new aCCLinker("aCC", objFiles,
- discardFiles, "", "");
- public static aCCLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private aCCLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix, String outputSuffix) {
- super(command, "-help", extensions, ignoredExtensions, outputPrefix,
- outputSuffix, false, null);
- }
- public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
- if (debug) {
- args.addElement("-g");
- }
- /*
- * if(linkType.isStaticRuntime()) { args.addElement("-static"); }
- */
- if (linkType.isSharedLibrary()) {
- args.addElement("-b");
- }
- /*
- * if (linkType.isStaticLibrary()) { args.addElement("-Wl,-noshared"); }
- */
- }
- public void addIncremental(boolean incremental, Vector args) {
- /*
- * if (incremental) { args.addElement("-xidlon"); } else {
- * args.addElement("-xidloff"); }
- */
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- File CCloc = CUtil.getExecutableLocation("aCC");
- if (CCloc != null) {
- File compilerLib = new File(new File(CCloc, "../lib")
- .getAbsolutePath());
- if (compilerLib.exists()) {
- libDirs = new File[2];
- libDirs[0] = compilerLib;
- }
- }
- if (libDirs == null) {
- libDirs = new File[1];
- }
- }
- libDirs[libDirs.length - 1] = new File("/usr/lib");
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return arLinker;
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java deleted file mode 100644 index f181c0e3af..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java +++ /dev/null @@ -1,111 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.ibm;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the IBM(r) Visual Age(tm) C++ compiler for AIX(tm)
- *
- * @author Curt Arnold
- */
-public final class VisualAgeCCompiler extends GccCompatibleCCompiler {
- private static final VisualAgeCCompiler instance = new VisualAgeCCompiler(
- "xlC", false, null);
- /**
- * Gets singleton instance of this class
- */
- public static VisualAgeCCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private File[] includePath;
- /**
- * Private constructor. Use getInstance() to get singleton instance of this
- * class.
- */
- private VisualAgeCCompiler(String command, boolean newEnvironment,
- Environment env) {
- super(command, "-help", false, null, newEnvironment, env);
- }
- public void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization) {
- args.addElement("-c");
- if (debug) {
- args.addElement("-g");
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("-fpic");
- }
- if (rtti != null) {
- if (rtti.booleanValue()) {
- args.addElement("-qrtti=all");
- } else {
- args.addElement("-qnortti");
- }
- }
- }
- public void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("-w");
- break;
- case 1 :
- args.addElement("-qflag=s:s");
- break;
- case 2 :
- args.addElement("-qflag=e:e");
- break;
- case 3 :
- args.addElement("-qflag=w:w");
- break;
- case 4 :
- args.addElement("-qflag=i:i");
- break;
- case 5 :
- args.addElement("-qhalt=w:w");
- break;
- }
- }
- public Linker getLinker(LinkType linkType) {
- return VisualAgeLinker.getInstance().getLinker(linkType);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- /**
- * Gets identifier for the compiler.
- *
- * Initial attempt at extracting version information
- * would lock up. Using a stock response.
- */
- public String getIdentifier() {
- return "VisualAge compiler - unidentified version";
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java deleted file mode 100644 index f0a811b4ea..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java +++ /dev/null @@ -1,75 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.ibm;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-import net.sf.antcontrib.cpptasks.gcc.GccLibrarian;
-/**
- * Adapter for IBM(r) Visual Age(tm) Linker for AIX(tm)
- *
- * @author Curt Arnold
- */
-public final class VisualAgeLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[]{};
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final VisualAgeLinker dllLinker = new VisualAgeLinker(
- "makeC++SharedLib", objFiles, discardFiles, "lib", ".so");
- private static final VisualAgeLinker instance = new VisualAgeLinker("xlC",
- objFiles, discardFiles, "", "");
- public static VisualAgeLinker getInstance() {
- return instance;
- }
- private VisualAgeLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix, String outputSuffix) {
- //
- // just guessing that -? might display something useful
- //
- super(command, "-?", extensions, ignoredExtensions, outputPrefix,
- outputSuffix, false, null);
- }
- public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
- if (debug) {
- //args.addElement("-g");
- }
- if (linkType.isSharedLibrary()) {
- //args.addElement("-G");
- }
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
- /**
- * Gets identifier for the compiler.
- *
- * Initial attempt at extracting version information
- * would lock up. Using a stock response.
- */
- public String getIdentifier() {
- return "VisualAge linker - unidentified version";
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java deleted file mode 100644 index 65402f41fb..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32CCompiler.java +++ /dev/null @@ -1,58 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Intel (r) C/C++ compiler for IA-32 Linux (r)
- *
- * The Intel (r) C/C++ compiler for IA32 Linux mimics the command options for
- * gcc compiler.
- *
- * @author Curt Arnold
- */
-public final class IntelLinux32CCompiler extends GccCompatibleCCompiler {
- private static final IntelLinux32CCompiler instance = new IntelLinux32CCompiler(
- false, new IntelLinux32CCompiler(true, null, false, null), false,
- null);
- public static IntelLinux32CCompiler getInstance() {
- return instance;
- }
- private IntelLinux32CCompiler(boolean isLibtool,
- IntelLinux32CCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super("icc", "-V", isLibtool, libtoolCompiler, newEnvironment, env);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new IntelLinux32CCompiler(getLibtool(),
- (IntelLinux32CCompiler) getLibtoolCompiler(),
- newEnvironment, env);
- }
- return this;
- }
- public Linker getLinker(LinkType type) {
- return IntelLinux32Linker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java deleted file mode 100644 index 268f490ff3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux32Linker.java +++ /dev/null @@ -1,55 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-import net.sf.antcontrib.cpptasks.gcc.GccLibrarian;
-/**
- * Adapter for the Intel (r) Linker for Linux (r) for IA-32
- *
- * @author Curt Arnold
- */
-public final class IntelLinux32Linker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final IntelLinux32Linker dllLinker = new IntelLinux32Linker(
- "lib", ".so", false, new IntelLinux32Linker("lib", ".so", true,
- null));
- private static final IntelLinux32Linker instance = new IntelLinux32Linker(
- "", "", false, null);
- public static IntelLinux32Linker getInstance() {
- return instance;
- }
- private IntelLinux32Linker(String outputPrefix, String outputSuffix,
- boolean isLibtool, IntelLinux32Linker libtoolLinker) {
- super("icc", "-V", objFiles, discardFiles, outputPrefix, outputSuffix,
- isLibtool, libtoolLinker);
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java deleted file mode 100644 index 5a506e0d85..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64CCompiler.java +++ /dev/null @@ -1,58 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Intel (r) C/C++ compiler for IA-64 Linux (r)
- *
- * The Intel C/C++ compiler for IA-64 Linux mimics the command options for gcc
- * compiler.
- *
- * @author Curt Arnold
- */
-public final class IntelLinux64CCompiler extends GccCompatibleCCompiler {
- private static final IntelLinux64CCompiler instance = new IntelLinux64CCompiler(
- false, new IntelLinux64CCompiler(true, null, false, null), false,
- null);
- public static IntelLinux64CCompiler getInstance() {
- return instance;
- }
- private IntelLinux64CCompiler(boolean isLibtool,
- IntelLinux64CCompiler libtoolCompiler, boolean newEnvironment,
- Environment env) {
- super("ecc", "-V", isLibtool, libtoolCompiler, newEnvironment, env);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new IntelLinux64CCompiler(getLibtool(),
- (IntelLinux64CCompiler) this.getLibtoolCompiler(),
- newEnvironment, env);
- }
- return this;
- }
- public Linker getLinker(LinkType type) {
- return IntelLinux64Linker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java deleted file mode 100644 index f381403510..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelLinux64Linker.java +++ /dev/null @@ -1,55 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-import net.sf.antcontrib.cpptasks.gcc.GccLibrarian;
-/**
- * Adapter for the Intel (r) linker for Linux for IA-64
- *
- * @author Curt Arnold
- */
-public final class IntelLinux64Linker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[0];
- private static final String[] libtoolObjFiles = new String[]{".fo", ".a",
- ".lib", ".dll", ".so", ".sl"};
- private static final String[] objFiles = new String[]{".o", ".a", ".lib",
- ".dll", ".so", ".sl"};
- private static final IntelLinux64Linker dllLinker = new IntelLinux64Linker(
- "lib", ".so", false, new IntelLinux64Linker("lib", ".so", true,
- null));
- private static final IntelLinux64Linker instance = new IntelLinux64Linker(
- "", "", false, null);
- public static IntelLinux64Linker getInstance() {
- return instance;
- }
- private IntelLinux64Linker(String outputPrefix, String outputSuffix,
- boolean isLibtool, IntelLinux64Linker libtoolLinker) {
- super("ecc", "-V", objFiles, discardFiles, outputPrefix, outputSuffix,
- isLibtool, libtoolLinker);
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java deleted file mode 100644 index d1b4eafec5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelProcessor.java +++ /dev/null @@ -1,51 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioProcessor;
-/**
- * A add-in class for Intel (r) compilers and linkers
- *
- *
- */
-public class IntelProcessor {
- public static void addWarningSwitch(Vector args, int level) {
- DevStudioProcessor.addWarningSwitch(args, level);
- }
- public static String getCommandFileSwitch(String cmdFile) {
- return DevStudioProcessor.getCommandFileSwitch(cmdFile);
- }
- public static void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- DevStudioProcessor.getDefineSwitch(buffer, define, value);
- }
- public static String getIncludeDirSwitch(String includeDir) {
- return DevStudioProcessor.getIncludeDirSwitch(includeDir);
- }
- public static String[] getOutputFileSwitch(String outPath) {
- return DevStudioProcessor.getOutputFileSwitch(outPath);
- }
- public static void getUndefineSwitch(StringBuffer buffer, String define) {
- DevStudioProcessor.getUndefineSwitch(buffer, define);
- }
- public static boolean isCaseSensitive() {
- return false;
- }
- private IntelProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java deleted file mode 100644 index 5255cb90ce..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Aslcompiler.java +++ /dev/null @@ -1,66 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineAslcompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker;
-/**
- * Adapter for Intel ASL compiler
- *
- */
-public final class IntelWin32Aslcompiler extends CommandLineAslcompiler{
- private final static String[] sourceExtensions = new String[]{".asl"};
- private final static String[] headerExtensions = new String[]{};
- private final static String[] defaultflags = new String[]{};
- private static final IntelWin32Aslcompiler instance = new IntelWin32Aslcompiler("iasl",
- sourceExtensions, headerExtensions, false);
-
- /**
- * Gets gcc adapter
- */
- public static IntelWin32Aslcompiler getInstance() {
- return instance;
- }
-
- /**
- * Private constructor. Use GccAssembler.getInstance() to get singleton
- * instance of this class.
- */
- private IntelWin32Aslcompiler(String command, String[] sourceExtensions,
- String[] headerExtensions, boolean isLibtool){
- super(command, null, sourceExtensions, headerExtensions,
- ".aml");
- }
- public void addImpliedArgs(Vector args, boolean debug,
- Boolean defaultflag){
- if (defaultflag != null && defaultflag.booleanValue()) {
- for (int i = 0; i < defaultflags.length; i++) {
- args.addElement(defaultflags[i]);
- }
- }
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- public Linker getLinker(LinkType linkType) {
- return DevStudioLinker.getInstance().getLinker(linkType);
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java deleted file mode 100644 index 7aef79999f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32CCompiler.java +++ /dev/null @@ -1,53 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleCCompiler;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Intel (r) C++ compiler for 32-bit applications
- *
- * The Intel (r) C++ compiler for IA32 Windows mimics the command options for
- * the Microsoft (r) C++ compiler.
- *
- * @author Curt Arnold
- */
-public final class IntelWin32CCompiler extends DevStudioCompatibleCCompiler {
- private static final IntelWin32CCompiler instance = new IntelWin32CCompiler(
- false, null);
- public static IntelWin32CCompiler getInstance() {
- return instance;
- }
- private IntelWin32CCompiler(boolean newEnvironment, Environment env) {
- super("icl", null, newEnvironment, env);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new IntelWin32CCompiler(newEnvironment, env);
- }
- return this;
- }
- public Linker getLinker(LinkType type) {
- return IntelWin32Linker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java deleted file mode 100644 index e83da1ce0b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Librarian.java +++ /dev/null @@ -1,38 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleLibrarian;
-/**
- * Adapter for the xilib from the Intel(r) C++ Compiler for IA-32 or IA-64
- * systems running Microsoft (r) operating systems
- *
- * @author Curt Arnold
- */
-public class IntelWin32Librarian extends DevStudioCompatibleLibrarian {
- private static final IntelWin32Librarian instance = new IntelWin32Librarian();
- public static IntelWin32Librarian getInstance() {
- return instance;
- }
- protected IntelWin32Librarian() {
- super("xilib", "/bogus");
- }
- public Linker getLinker(LinkType type) {
- return IntelWin32Linker.getInstance().getLinker(type);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java deleted file mode 100644 index 51258e23ca..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin32Linker.java +++ /dev/null @@ -1,46 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleLinker;
-/**
- * Adapter for the Intel (r) linker for 32-bit applications
- *
- * @author Curt Arnold
- */
-public final class IntelWin32Linker extends DevStudioCompatibleLinker {
- private static final IntelWin32Linker dllLinker = new IntelWin32Linker(
- ".dll");
- private static final IntelWin32Linker instance = new IntelWin32Linker(
- ".exe");
- public static IntelWin32Linker getInstance() {
- return instance;
- }
- private IntelWin32Linker(String outputSuffix) {
- super("xilink", "/bogus", outputSuffix);
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return IntelWin32Librarian.getInstance();
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java deleted file mode 100644 index 9b8d2c9db4..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/intel/IntelWin64CCompiler.java +++ /dev/null @@ -1,53 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.intel;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioCompatibleCCompiler;
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Intel C++ compiler for Itanium(TM) Applications
- *
- * @author Curt Arnold
- */
-public final class IntelWin64CCompiler extends DevStudioCompatibleCCompiler {
- private static final IntelWin64CCompiler instance = new IntelWin64CCompiler(
- false, null);
- public static IntelWin64CCompiler getInstance() {
- return instance;
- }
- private IntelWin64CCompiler(boolean newEnvironment, Environment env) {
- super("ecl", null, newEnvironment, env);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new IntelWin64CCompiler(newEnvironment, env);
- }
- return this;
- }
- public Linker getLinker(LinkType type) {
- //
- // currently the Intel Win32 and Win64 linkers
- // are command line equivalent
- return IntelWin32Linker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return 1024;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java deleted file mode 100644 index 633b55ec0c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390CCompiler.java +++ /dev/null @@ -1,157 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.os390;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.CompilerDef;
-import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.types.DefineArgument;
-import net.sf.antcontrib.cpptasks.types.UndefineArgument;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the IBM (R) OS/390 (tm) C++ Compiler
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public class OS390CCompiler extends CommandLineCCompiler {
- private static final AbstractCompiler instance = new OS390CCompiler(false,
- null);
- public static AbstractCompiler getInstance() {
- return instance;
- }
- private OS390CCompiler(boolean newEnvironment, Environment env) {
- super("cxx", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++",
- ".s"}, new String[]{".h", ".hpp"}, ".o", false, null,
- newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- // Specifies that only compilations and assemblies be done.
- // Link-edit is not done
- args.addElement("-c");
- args.addElement("-W");
- args.addElement("c,NOEXPMAC,NOSHOWINC");
- /*
- * if (exceptions) { args.addElement("/GX"); }
- */
- if (debug) {
- args.addElement("-g");
- args.addElement("-D");
- args.addElement("_DEBUG");
- /*
- * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) {
- * args.addElement("/MTd"); } else { args.addElement("/MDd");
- * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); }
- */
- } else {
- args.addElement("-D");
- args.addElement("NEBUG");
- /*
- * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) {
- * args.addElement("/MT"); } else { args.addElement("/MD");
- * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); }
- */
- }
- }
- protected void addWarningSwitch(Vector args, int level) {
- OS390Processor.addWarningSwitch(args, level);
- }
- /**
- * The buildDefineArguments implementation CommandLineCCompiler is not good
- * for us because os390 defines are give by -D definex instead of
- * /Ddefinex, 2 args not 1! since we implement this ourslefs, we do not
- * have to implement the getDefineSwitch() and the getUndefineSwitch().
- */
- protected void buildDefineArguments(CompilerDef[] defs, Vector args) {
- //
- // assume that we aren't inheriting defines from containing <cc>
- //
- UndefineArgument[] merged = defs[0].getActiveDefines();
- for (int i = 1; i < defs.length; i++) {
- //
- // if we are inheriting, merge the specific defines with the
- // containing defines
- merged = DefineArgument.merge(defs[i].getActiveDefines(), merged);
- }
- StringBuffer buf = new StringBuffer(30);
- for (int i = 0; i < merged.length; i++) {
- buf.setLength(0);
- UndefineArgument current = merged[i];
- if (current.isDefine()) {
- args.addElement("-D");
- buf.append(current.getName());
- if (current.getValue() != null
- && current.getValue().length() > 0) {
- buf.append('=');
- buf.append(current.getValue());
- }
- args.addElement(buf.toString());
- } else {
- args.addElement("-U");
- args.addElement(current.getName());
- }
- }
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new OS390CCompiler(newEnvironment, env);
- }
- return this;
- }
- /*
- * @see CommandLineCompiler#getDefineSwitch(StringBuffer, String, String)
- */
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ":");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return OS390Processor.getIncludeDirSwitch(includeDir);
- }
- public Linker getLinker(LinkType type) {
- return OS390Linker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- /* Only compile one file at time for now */
- protected int getMaximumInputFilesPerCommand() {
- return Integer.MAX_VALUE;
- }
- /*
- * @see CommandLineCompiler#getUndefineSwitch(StringBuffer, String)
- */
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java deleted file mode 100644 index f6653b7be4..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Linker.java +++ /dev/null @@ -1,201 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.os390;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the IBM (R) OS/390 (tm) Linker
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public final class OS390Linker extends CommandLineLinker {
- private static final OS390Linker datasetLinker = new OS390Linker();
- private static final OS390Linker dllLinker = new OS390Linker("", ".dll");
- private static final OS390Linker instance = new OS390Linker("", "");
- public static OS390Linker getDataSetInstance() {
- return datasetLinker;
- }
- public static OS390Linker getInstance() {
- return instance;
- }
- private boolean isADatasetLinker;
- File outputFile;
- private String outputPrefix;
- CCTask task;
- private OS390Linker() {
- super("cxx", "/bogus", new String[]{".o", ".a", ".lib", ".xds"},
- new String[]{".dll", ".x"}, ".xds", false, null);
- this.outputPrefix = "";
- this.isADatasetLinker = true;
- }
- private OS390Linker(String outputPrefix, String outputSuffix) {
- super("cxx", "/bogus", new String[]{".o", ".a", ".lib", ".x"},
- new String[]{".dll"}, outputSuffix, false, null);
- this.outputPrefix = outputPrefix;
- this.isADatasetLinker = false;
- }
- protected void addBase(long base, Vector args) {
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if (linkType.isSharedLibrary()) {
- args.addElement("-W");
- args.addElement("l,DLL");
- }
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- /*
- * @see CommandLineLinker#addLibrarySets(LibrarySet[], Vector, Vector,
- * Vector)
- */
- protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- // If yo want to link against a library sitting in a dataset and
- // not in the HFS, you can just use the //'dataset' notation
- // to specify it. e.g:
- // <libset dir="." libs="//'MQM.V5R2M0.SCSQLOAD'"/>
- //
- // We have to have special handling here because the file is not
- // on the normal filesystem so the task will not noramly include it
- // as part of the link command.
- if (libsets != null) {
- for (int i = 0; i < libsets.length; i++) {
- String libs[] = libsets[i].getLibs();
- for (int j = 0; j < libs.length; j++) {
- if (libs[j].startsWith("//")) {
- endargs.addElement("-l");
- endargs.addElement(libs[j]);
- } else if (libsets[i].getDataset() != null) {
- String ds = libsets[i].getDataset();
- endargs.addElement("//'" + ds + "(" + libs[j] + ")'");
- }
- }
- }
- }
- return super.addLibrarySets(task, libsets, preargs, midargs, endargs);
- }
- protected void addMap(boolean map, Vector args) {
- }
- protected void addStack(int stack, Vector args) {
- }
- protected void addEntry(String entry, Vector args) {
- }
-
- public String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- public File[] getLibraryPath() {
- return CUtil.getPathFromEnvironment("LIB", ";");
- }
-
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- String[] patterns = new String[libnames.length * 3];
- int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);
- offset = addLibraryPatterns(libnames, buf, "", ".x", patterns, offset);
- offset = addLibraryPatterns(libnames, buf, "", ".o", patterns, offset);
- return patterns;
- }
-
- private static int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
-
- public Linker getLinker(LinkType linkType) {
- if (this == datasetLinker)
- return datasetLinker;
- if (linkType.isSharedLibrary())
- return dllLinker;
- return instance;
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- public String getOutputFileName(String baseName) {
- return outputPrefix + super.getOutputFileName(baseName);
- }
- protected String[] getOutputFileSwitch(CCTask task, String outputFile) {
- if (isADatasetLinker && task.getDataset() != null) {
- String ds = task.getDataset();
- outputFile = "//'" + ds + "(" + outputFile + ")'";
- }
- return getOutputFileSwitch(outputFile);
- }
- public String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"-o", outputFile};
- }
- public boolean isCaseSensitive() {
- return OS390Processor.isCaseSensitive();
- }
- /*
- * @see CommandLineLinker#link(Task, File, String[],
- * CommandLineLinkerConfiguration)
- */
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- this.task = task;
- this.outputFile = outputFile;
- if (isADatasetLinker) {
- int p = outputFile.getName().indexOf(".");
- if (p >= 0) {
- String newname = outputFile.getName().substring(0, p);
- outputFile = new File(outputFile.getParent(), newname);
- }
- }
- super.link(task, outputFile, sourceFiles, config);
- }
- /*
- * @see CommandLineLinker#runCommand(Task, File, String[])
- */
- protected int runCommand(CCTask task, File workingDir, String[] cmdline)
- throws BuildException {
- int rc = super.runCommand(task, workingDir, cmdline);
- // create the .xds file if everything was ok.
- if (rc == 0) {
- try {
- outputFile.delete();
- new FileOutputStream(outputFile).close();
- } catch (IOException e) {
- throw new BuildException(e.getMessage());
- }
- }
- return rc;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java deleted file mode 100644 index 2c209dd6bb..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os390/OS390Processor.java +++ /dev/null @@ -1,71 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.os390;
-import java.util.Vector;
-/**
- * A add-in class for IBM (r) OS/390 compilers and linkers
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public class OS390Processor {
- public static void addWarningSwitch(Vector args, int level) {
- switch (level) {
- /*
- * case 0: args.addElement("/W0"); break;
- *
- * case 1: args.addElement("/W1"); break;
- *
- * case 2: break;
- *
- * case 3: args.addElement("/W3"); break;
- *
- * case 4: args.addElement("/W4"); break;
- */
- }
- }
- public static String getCommandFileSwitch(String cmdFile) {
- StringBuffer buf = new StringBuffer("@");
- if (cmdFile.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(cmdFile);
- buf.append('\"');
- } else {
- buf.append(cmdFile);
- }
- return buf.toString();
- }
- public static String getIncludeDirSwitch(String includeDir) {
- return "-I" + includeDir;
- }
- public static String[] getOutputFileSwitch(String outPath) {
- StringBuffer buf = new StringBuffer("-o ");
- if (outPath.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(outPath);
- buf.append('\"');
- } else {
- buf.append(outPath);
- }
- String[] retval = new String[]{buf.toString()};
- return retval;
- }
- public static boolean isCaseSensitive() {
- return true;
- }
- private OS390Processor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java deleted file mode 100644 index f40858f71b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccCompiler.java +++ /dev/null @@ -1,124 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.os400;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the IBM (R) OS/390 (tm) C++ Compiler
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public class IccCompiler extends CommandLineCCompiler {
- private static final AbstractCompiler instance = new IccCompiler(false,
- null);
- public static AbstractCompiler getInstance() {
- return instance;
- }
- private IccCompiler(boolean newEnvironment, Environment env) {
- super("icc", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++",
- ".s"}, new String[]{".h", ".hpp"}, ".o", false, null,
- newEnvironment, env);
- }
- protected void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- // Specifies that only compilations and assemblies be done.
- // Link-edit is not done
- args.addElement("-c");
- /*
- * if (exceptions) { args.addElement("/GX"); }
- */
- if (debug) {
- args.addElement("-g");
- /*
- * args.addElement("-D"); args.addElement("_DEBUG"); if
- * (multithreaded) { args.addElement("/D_MT"); if (staticLink) {
- * args.addElement("/MTd"); } else { args.addElement("/MDd");
- * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); }
- */
- } else {
- /*
- * args.addElement("-D"); args.addElement("NEBUG"); if
- * (multithreaded) { args.addElement("/D_MT"); if (staticLink) {
- * args.addElement("/MT"); } else { args.addElement("/MD");
- * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); }
- */
- }
- }
- protected void addWarningSwitch(Vector args, int level) {
- IccProcessor.addWarningSwitch(args, level);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new IccCompiler(newEnvironment, env);
- }
- return this;
- }
- /*
- * @see CommandLineCompiler#getDefineSwitch(StringBuffer, String, String)
- */
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- buffer.append("-q");
- buffer.append(define);
- if (value != null && value.length() > 0) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ":");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return IccProcessor.getIncludeDirSwitch(includeDir);
- }
- public Linker getLinker(LinkType type) {
- return IccLinker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- /* Only compile one file at time for now */
- protected int getMaximumInputFilesPerCommand() {
- return 1;
- //return Integer.MAX_VALUE;
- }
- /*
- * @see CommandLineCompiler#getUndefineSwitch(StringBuffer, String)
- */
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- /*
- * buffer.addElement("-q"); buf.append(define);
- */
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java deleted file mode 100644 index 5e4e2f229a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccLinker.java +++ /dev/null @@ -1,202 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.os400;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-import org.apache.tools.ant.BuildException;
-/**
- * Adapter for the IBM (R) OS/390 (tm) Linker
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public final class IccLinker extends CommandLineLinker {
- private static final IccLinker datasetLinker = new IccLinker();
- private static final IccLinker dllLinker = new IccLinker("", ".dll");
- private static final IccLinker instance = new IccLinker("", "");
- public static IccLinker getDataSetInstance() {
- return datasetLinker;
- }
- public static IccLinker getInstance() {
- return instance;
- }
- private boolean isADatasetLinker;
- File outputFile;
- private String outputPrefix;
- CCTask task;
- private IccLinker() {
- super("icc", "/bogus", new String[]{".o", ".a", ".lib", ".xds"},
- new String[]{".dll", ".x"}, ".xds", false, null);
- this.outputPrefix = "";
- this.isADatasetLinker = true;
- }
- private IccLinker(String outputPrefix, String outputSuffix) {
- super("icc", "/bogus", new String[]{".o", ".a", ".lib", ".x"},
- new String[]{".dll"}, outputSuffix, false, null);
- this.outputPrefix = outputPrefix;
- this.isADatasetLinker = false;
- }
- protected void addBase(long base, Vector args) {
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if (linkType.isSharedLibrary()) {
- args.addElement("-W");
- args.addElement("l,DLL");
- }
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- /*
- * @see CommandLineLinker#addLibrarySets(LibrarySet[], Vector, Vector,
- * Vector)
- */
- protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- // If yo want to link against a library sitting in a dataset and
- // not in the HFS, you can just use the //'dataset' notation
- // to specify it. e.g:
- // <libset dir="." libs="//'MQM.V5R2M0.SCSQLOAD'"/>
- //
- // We have to have special handling here because the file is not
- // on the normal filesystem so the task will not noramly include it
- // as part of the link command.
- if (libsets != null) {
- for (int i = 0; i < libsets.length; i++) {
- String libs[] = libsets[i].getLibs();
- for (int j = 0; j < libs.length; j++) {
- if (libs[j].startsWith("//")) {
- endargs.addElement("-l");
- endargs.addElement(libs[j]);
- } else if (libsets[i].getDataset() != null) {
- String ds = libsets[i].getDataset();
- endargs.addElement("//'" + ds + "(" + libs[j] + ")'");
- }
- }
- }
- }
- return super.addLibrarySets(task, libsets, preargs, midargs, endargs);
- }
- protected void addMap(boolean map, Vector args) {
- }
- protected void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- public String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- public File[] getLibraryPath() {
- return CUtil.getPathFromEnvironment("LIB", ";");
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- String[] patterns = new String[libnames.length * 3];
- int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);
- offset = addLibraryPatterns(libnames, buf, "", ".x", patterns, offset);
- offset = addLibraryPatterns(libnames, buf, "", ".o", patterns, offset);
- return patterns;
- }
-
- private static int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
-
-
- public Linker getLinker(LinkType linkType) {
- if (this == datasetLinker)
- return datasetLinker;
- if (linkType.isSharedLibrary())
- return dllLinker;
- return instance;
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- protected String[] getOutputFileSwitch(CCTask task, String outputFile) {
- if (isADatasetLinker && task.getDataset() != null) {
- String ds = task.getDataset();
- outputFile = "//'" + ds + "(" + outputFile + ")'";
- }
- return getOutputFileSwitch(outputFile);
- }
- public String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"-o", outputFile};
- }
- public boolean isCaseSensitive() {
- return IccProcessor.isCaseSensitive();
- }
- /*
- * @see CommandLineLinker#link(Task, File, String[],
- * CommandLineLinkerConfiguration)
- */
- public void link(CCTask task, File outputFile, String[] sourceFiles,
- CommandLineLinkerConfiguration config) throws BuildException {
- this.task = task;
- this.outputFile = outputFile;
- if (isADatasetLinker) {
- int p = outputFile.getName().indexOf(".");
- if (p >= 0) {
- String newname = outputFile.getName().substring(0, p);
- outputFile = new File(outputFile.getParent(), newname);
- }
- }
- super.link(task, outputFile, sourceFiles, config);
- }
- /*
- * @see CommandLineLinker#runCommand(Task, File, String[])
- */
- protected int runCommand(CCTask task, File workingDir, String[] cmdline)
- throws BuildException {
- int rc = super.runCommand(task, workingDir, cmdline);
- // create the .xds file if everything was ok.
- if (rc == 0) {
- try {
- outputFile.delete();
- new FileOutputStream(outputFile).close();
- } catch (IOException e) {
- throw new BuildException(e.getMessage());
- }
- }
- return rc;
- }
- public String xgetOutputFileName(String baseName) {
- return outputPrefix + super.getOutputFileName(baseName);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java deleted file mode 100644 index 4cc7b36ab3..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/os400/IccProcessor.java +++ /dev/null @@ -1,71 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.os400;
-import java.util.Vector;
-/**
- * A add-in class for IBM (r) OS/390 compilers and linkers
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public class IccProcessor {
- public static void addWarningSwitch(Vector args, int level) {
- switch (level) {
- /*
- * case 0: args.addElement("/W0"); break;
- *
- * case 1: args.addElement("/W1"); break;
- *
- * case 2: break;
- *
- * case 3: args.addElement("/W3"); break;
- *
- * case 4: args.addElement("/W4"); break;
- */
- }
- }
- public static String getCommandFileSwitch(String cmdFile) {
- StringBuffer buf = new StringBuffer("@");
- if (cmdFile.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(cmdFile);
- buf.append('\"');
- } else {
- buf.append(cmdFile);
- }
- return buf.toString();
- }
- public static String getIncludeDirSwitch(String includeDir) {
- return "-I" + includeDir;
- }
- public static String[] getOutputFileSwitch(String outPath) {
- StringBuffer buf = new StringBuffer("-o ");
- if (outPath.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(outPath);
- buf.append('\"');
- } else {
- buf.append(outPath);
- }
- String[] retval = new String[]{buf.toString()};
- return retval;
- }
- public static boolean isCaseSensitive() {
- return true;
- }
- private IccProcessor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java deleted file mode 100644 index 6f0b79c072..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParser.java +++ /dev/null @@ -1,67 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-import java.io.IOException;
-import java.io.Reader;
-/**
- * An abstract base class for simple parsers
- *
- * @author Curt Arnold
- */
-public abstract class AbstractParser {
- /**
- *
- *
- */
- protected AbstractParser() {
- }
- protected abstract void addFilename(String filename);
- public abstract AbstractParserState getNewLineState();
- protected void parse(Reader reader) throws IOException {
- char[] buf = new char[4096];
- AbstractParserState newLineState = getNewLineState();
- AbstractParserState state = newLineState;
- int charsRead = -1;
- do {
- charsRead = reader.read(buf, 0, buf.length);
- if (state == null) {
- for (int i = 0; i < charsRead; i++) {
- if (buf[i] == '\n') {
- state = newLineState;
- break;
- }
- }
- }
- if (state != null) {
- for (int i = 0; i < charsRead; i++) {
- state = state.consume(buf[i]);
- //
- // didn't match a production, skip to a new line
- //
- if (state == null) {
- for (; i < charsRead; i++) {
- if (buf[i] == '\n') {
- state = newLineState;
- break;
- }
- }
- }
- }
- }
- } while (charsRead >= 0);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java deleted file mode 100644 index fe66dbbef0..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/AbstractParserState.java +++ /dev/null @@ -1,41 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-/**
- * An base class for objects that represent the state of an AbstractParser.
- *
- * @author CurtArnold
- * @see AbstractParser
- */
-public abstract class AbstractParserState {
- private AbstractParser parser;
- protected AbstractParserState(AbstractParser parser) {
- if (parser == null) {
- throw new NullPointerException("parser");
- }
- this.parser = parser;
- }
- /**
- * Consume a character
- *
- * @return new state, may be null to ignore the rest of the line
- */
- public abstract AbstractParserState consume(char ch);
- protected AbstractParser getParser() {
- return parser;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java deleted file mode 100644 index 370c7d5836..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/BranchState.java +++ /dev/null @@ -1,46 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-public class BranchState extends AbstractParserState {
- private char[] branchChars;
- private AbstractParserState[] branchStates;
- private AbstractParserState noMatchState;
- public BranchState(AbstractParser parser, char[] branchChars,
- AbstractParserState[] branchStates, AbstractParserState noMatchState) {
- super(parser);
- this.branchChars = (char[]) branchChars.clone();
- this.branchStates = (AbstractParserState[]) branchStates.clone();
- this.noMatchState = noMatchState;
- }
- public AbstractParserState consume(char ch) {
- AbstractParserState state;
- for (int i = 0; i < branchChars.length; i++) {
- if (ch == branchChars[i]) {
- state = branchStates[i];
- return state.consume(ch);
- }
- }
- state = getNoMatchState();
- if (state != null) {
- return state.consume(ch);
- }
- return state;
- }
- protected AbstractParserState getNoMatchState() {
- return noMatchState;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java deleted file mode 100644 index 07f8eba4e2..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CParser.java +++ /dev/null @@ -1,78 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-import java.io.IOException;
-import java.io.Reader;
-import java.util.Vector;
-/**
- * A parser that extracts #include statements from a Reader.
- *
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public final class CParser extends AbstractParser implements Parser {
- private final Vector includes = new Vector();
- private AbstractParserState newLineState;
- /**
- *
- *
- */
- public CParser() {
- AbstractParserState quote = new FilenameState(this, new char[]{'"'});
- AbstractParserState bracket = new FilenameState(this, new char[]{'>'});
- AbstractParserState postE = new PostE(this, bracket, quote);
- //
- // nclude
- //
- AbstractParserState e = new LetterState(this, 'e', postE, null);
- AbstractParserState d = new LetterState(this, 'd', e, null);
- AbstractParserState u = new LetterState(this, 'u', d, null);
- AbstractParserState l = new LetterState(this, 'l', u, null);
- AbstractParserState c = new LetterState(this, 'c', l, null);
- AbstractParserState n = new LetterState(this, 'n', c, null);
- //
- // mport is equivalent to nclude
- //
- AbstractParserState t = new LetterState(this, 't', postE, null);
- AbstractParserState r = new LetterState(this, 'r', t, null);
- AbstractParserState o = new LetterState(this, 'o', r, null);
- AbstractParserState p = new LetterState(this, 'p', o, null);
- AbstractParserState m = new LetterState(this, 'm', p, null);
- //
- // switch between
- //
- AbstractParserState n_m = new BranchState(this, new char[]{'n', 'm'},
- new AbstractParserState[]{n, m}, null);
- AbstractParserState i = new WhitespaceOrLetterState(this, 'i', n_m);
- newLineState = new LetterState(this, '#', i, null);
- }
- public void addFilename(String include) {
- includes.addElement(include);
- }
- public String[] getIncludes() {
- String[] retval = new String[includes.size()];
- includes.copyInto(retval);
- return retval;
- }
- public AbstractParserState getNewLineState() {
- return newLineState;
- }
- public void parse(Reader reader) throws IOException {
- includes.setSize(0);
- super.parse(reader);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java deleted file mode 100644 index a86700f166..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/CaseInsensitiveLetterState.java +++ /dev/null @@ -1,87 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-
-/**
- * This parser state checks consumed characters against a specific character
- * (case insensitive).
- *
- * @author Curt Arnold
- */
-public final class CaseInsensitiveLetterState
- extends AbstractParserState {
- /**
- * Next state if a match is found.
- */
- private final AbstractParserState nextState;
-
- /**
- * Next state if not match is found.
- */
- private final AbstractParserState noMatchState;
-
- /**
- * Lower case version of character to match.
- */
- private final char lowerLetter;
-
- /**
- * Lower case version of character to match.
- */
- private final char upperLetter;
-
- /**
- * Constructor.
- *
- * @param parser
- * parser
- * @param matchLetter
- * letter to match
- * @param nextStateArg
- * next state if a match on the letter
- * @param noMatchStateArg
- * state if no match on letter
- */
- public CaseInsensitiveLetterState(final AbstractParser parser,
- final char matchLetter,
- final AbstractParserState nextStateArg,
- final AbstractParserState noMatchStateArg) {
- super(parser);
- this.lowerLetter = Character.toLowerCase(matchLetter);
- this.upperLetter = Character.toUpperCase(matchLetter);
- this.nextState = nextStateArg;
- this.noMatchState = noMatchStateArg;
- }
-
- /**
- * Consumes a character and returns the next state for the parser.
- *
- * @param ch
- * next character
- * @return the configured nextState if ch is the expected character or the
- * configure noMatchState otherwise.
- */
- public AbstractParserState consume(final char ch) {
- if (ch == lowerLetter || ch == upperLetter) {
- return nextState;
- }
- if (ch == '\n') {
- getParser().getNewLineState();
- }
- return noMatchState;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java deleted file mode 100644 index f33940b0a7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FilenameState.java +++ /dev/null @@ -1,41 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-public class FilenameState extends AbstractParserState {
- private final StringBuffer buf = new StringBuffer();
- private final char[] terminators;
- public FilenameState(AbstractParser parser, char[] terminators) {
- super(parser);
- this.terminators = (char[]) terminators.clone();
- }
- public AbstractParserState consume(char ch) {
- for (int i = 0; i < terminators.length; i++) {
- if (ch == terminators[i]) {
- getParser().addFilename(buf.toString());
- buf.setLength(0);
- return null;
- }
- }
- if (ch == '\n') {
- buf.setLength(0);
- return getParser().getNewLineState();
- } else {
- buf.append(ch);
- }
- return this;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java deleted file mode 100644 index 261e95ad81..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/FortranParser.java +++ /dev/null @@ -1,106 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.util.Vector;
-
-/**
- * A parser that extracts INCLUDE statements from a Reader.
- *
- * @author Curt Arnold
- */
-public final class FortranParser
- extends AbstractParser
- implements Parser {
- /**
- * List of included filenames.
- */
- private final Vector includes = new Vector();
-
- /**
- * State that starts consuming content at the beginning of a line.
- */
- private final AbstractParserState newLineState;
-
- /**
- * Default constructor.
- *
- */
- public FortranParser() {
- AbstractParserState filename = new FilenameState(this, new char[] {'\'',
- '/'});
- AbstractParserState apos = new WhitespaceOrLetterState(this, '\'',
- filename);
- AbstractParserState blank = new LetterState(this, ' ', apos, null);
- AbstractParserState e = new CaseInsensitiveLetterState(this, 'E',
- blank, null);
- AbstractParserState d = new CaseInsensitiveLetterState(this, 'D', e,
- null);
- AbstractParserState u = new CaseInsensitiveLetterState(this, 'U', d,
- null);
- AbstractParserState l = new CaseInsensitiveLetterState(this, 'L', u,
- null);
- AbstractParserState c = new CaseInsensitiveLetterState(this, 'C', l,
- null);
- AbstractParserState n = new CaseInsensitiveLetterState(this, 'N', c,
- null);
- newLineState = new WhitespaceOrCaseInsensitiveLetterState(this, 'I', n);
- }
-
- /**
- * Called by FilenameState at completion of file name production.
- *
- * @param include
- * include file name
- */
- public void addFilename(final String include) {
- includes.addElement(include);
- }
-
- /**
- * Gets collection of include file names encountered in parse.
- * @return include file names
- */
- public String[] getIncludes() {
- String[] retval = new String[includes.size()];
- includes.copyInto(retval);
- return retval;
- }
-
- /**
- * Get the state for the beginning of a new line.
- * @return start of line state
- */
- public AbstractParserState getNewLineState() {
- return newLineState;
- }
-
- /**
- * Collects all included files from the content of the reader.
- *
- * @param reader
- * character reader containing a FORTRAN source module
- * @throws IOException
- * throw if I/O error during parse
- */
- public void parse(final Reader reader) throws IOException {
- includes.setSize(0);
- super.parse(reader);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java deleted file mode 100644 index 945ae91233..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/LetterState.java +++ /dev/null @@ -1,80 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-
-/**
- * This parser state checks consumed characters against a specific character.
- *
- * @author Curt Arnold
- */
-public final class LetterState
- extends AbstractParserState {
- /**
- * Next state if a match is found.
- */
- private final AbstractParserState nextState;
-
- /**
- * Next state if not match is found.
- */
- private final AbstractParserState noMatchState;
-
- /**
- * Character to match.
- */
- private final char thisLetter;
-
- /**
- * Constructor.
- *
- * @param parser
- * parser
- * @param matchLetter
- * letter to match
- * @param nextStateArg
- * next state if a match on the letter
- * @param noMatchStateArg
- * state if no match on letter
- */
- public LetterState(final AbstractParser parser,
- final char matchLetter,
- final AbstractParserState nextStateArg,
- final AbstractParserState noMatchStateArg) {
- super(parser);
- this.thisLetter = matchLetter;
- this.nextState = nextStateArg;
- this.noMatchState = noMatchStateArg;
- }
-
- /**
- * Consumes a character and returns the next state for the parser.
- *
- * @param ch
- * next character
- * @return the configured nextState if ch is the expected character or the
- * configure noMatchState otherwise.
- */
- public AbstractParserState consume(final char ch) {
- if (ch == thisLetter) {
- return nextState;
- }
- if (ch == '\n') {
- getParser().getNewLineState();
- }
- return noMatchState;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java deleted file mode 100644 index cf759fc7d5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/Parser.java +++ /dev/null @@ -1,28 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-import java.io.IOException;
-import java.io.Reader;
-/**
- * A parser that extracts #include statements from a Reader.
- *
- * @author Curt Arnold
- */
-public interface Parser {
- String[] getIncludes();
- void parse(Reader reader) throws IOException;
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java deleted file mode 100644 index fe225fb35a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/PostE.java +++ /dev/null @@ -1,41 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-public class PostE extends AbstractParserState {
- private AbstractParserState bracket;
- private AbstractParserState quote;
- public PostE(CParser parser, AbstractParserState bracket,
- AbstractParserState quote) {
- super(parser);
- this.bracket = bracket;
- this.quote = quote;
- }
- public AbstractParserState consume(char ch) {
- switch (ch) {
- case ' ' :
- case '\t' :
- return this;
- case '<' :
- return bracket;
- case '"' :
- return quote;
- case '\n' :
- return getParser().getNewLineState();
- }
- return null;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java deleted file mode 100644 index 9d42feeaad..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrCaseInsensitiveLetterState.java +++ /dev/null @@ -1,83 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-
-/**
- * This parser state checks consumed characters against a specific character
- * (case insensitive) or whitespace.
- *
- * @author Curt Arnold
- */
-public final class WhitespaceOrCaseInsensitiveLetterState
- extends
- AbstractParserState {
- /**
- * Next state if the character is found.
- */
- private final AbstractParserState nextState;
-
- /**
- * Character to match (lower case).
- */
- private final char lowerLetter;
-
- /**
- * Character to match (upper case).
- */
- private final char upperLetter;
-
- /**
- * Constructor.
- *
- * @param parser
- * parser
- * @param matchLetter
- * letter to match
- * @param nextStateArg
- * next state if a match on the letter
- */
- public WhitespaceOrCaseInsensitiveLetterState(final AbstractParser parser,
- final char matchLetter,
- final AbstractParserState
- nextStateArg) {
- super(parser);
- this.lowerLetter = Character.toLowerCase(matchLetter);
- this.upperLetter = Character.toUpperCase(matchLetter);
- this.nextState = nextStateArg;
- }
-
- /**
- * Consumes a character and returns the next state for the parser.
- *
- * @param ch
- * next character
- * @return the configured nextState if ch is the expected character or the
- * configure noMatchState otherwise.
- */
- public AbstractParserState consume(final char ch) {
- if (ch == lowerLetter || ch == upperLetter) {
- return nextState;
- }
- if (ch == ' ' || ch == '\t') {
- return this;
- }
- if (ch == '\n') {
- getParser().getNewLineState();
- }
- return null;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java deleted file mode 100644 index 824abe6b68..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/parser/WhitespaceOrLetterState.java +++ /dev/null @@ -1,75 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.parser;
-
-/**
- * This parser state checks consumed characters against a specific character or
- * whitespace.
- *
- * @author Curt Arnold
- */
-public final class WhitespaceOrLetterState
- extends AbstractParserState {
- /**
- * Next state if the character is found.
- */
- private final AbstractParserState nextState;
-
- /**
- * Character to match.
- */
- private final char thisLetter;
-
- /**
- * Constructor.
- *
- * @param parser
- * parser
- * @param matchLetter
- * letter to match
- * @param nextStateArg
- * next state if a match on the letter
- */
- public WhitespaceOrLetterState(final AbstractParser parser,
- final char matchLetter,
- final AbstractParserState nextStateArg) {
- super(parser);
- this.thisLetter = matchLetter;
- this.nextState = nextStateArg;
- }
-
- /**
- * Consumes a character and returns the next state for the parser.
- *
- * @param ch
- * next character @returns the configured nextState if ch is the
- * expected character or the configure noMatchState otherwise.
- * @return next state
- */
- public AbstractParserState consume(final char ch) {
- if (ch == thisLetter) {
- return nextState;
- }
- if (ch == ' ' || ch == '\t') {
- return this;
- }
- if (ch == '\n') {
- getParser().getNewLineState();
- }
- return null;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java deleted file mode 100644 index 6679c239dd..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java +++ /dev/null @@ -1,109 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.sun;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for the Sun C89 C++ Compiler
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public class C89CCompiler extends CommandLineCCompiler {
- private static final AbstractCompiler instance = new C89CCompiler(false,
- null);
- public static AbstractCompiler getInstance() {
- return instance;
- }
- private C89CCompiler(boolean newEnvironment, Environment env) {
- super("c89", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++"},
- new String[]{".h", ".hpp"}, ".o", false, null, newEnvironment,
- env);
- }
- protected void addImpliedArgs(
- final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- // Specifies that only compilations and assemblies be done.
- args.addElement("-c");
- /*
- * if (exceptions) { args.addElement("/GX"); }
- */
- if (debug) {
- args.addElement("-g");
- args.addElement("-D_DEBUG");
- /*
- * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) {
- * args.addElement("/MTd"); } else { args.addElement("/MDd");
- * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); }
- */
- } else {
- args.addElement("-DNDEBUG");
- /*
- * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) {
- * args.addElement("/MT"); } else { args.addElement("/MD");
- * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); }
- */
- }
- }
- protected void addWarningSwitch(Vector args, int level) {
- C89Processor.addWarningSwitch(args, level);
- }
- public Processor changeEnvironment(boolean newEnvironment, Environment env) {
- if (newEnvironment || env != null) {
- return new C89CCompiler(newEnvironment, env);
- }
- return this;
- }
- protected void getDefineSwitch(StringBuffer buf, String define, String value) {
- C89Processor.getDefineSwitch(buf, define, value);
- }
- protected File[] getEnvironmentIncludePath() {
- return CUtil.getPathFromEnvironment("INCLUDE", ":");
- }
- protected String getIncludeDirSwitch(String includeDir) {
- return C89Processor.getIncludeDirSwitch(includeDir);
- }
- public Linker getLinker(LinkType type) {
- return C89Linker.getInstance().getLinker(type);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- /* Only compile one file at time for now */
- protected int getMaximumInputFilesPerCommand() {
- return 1;
- }
- protected void getUndefineSwitch(StringBuffer buf, String define) {
- C89Processor.getUndefineSwitch(buf, define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java deleted file mode 100644 index 37b3950bbe..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Linker.java +++ /dev/null @@ -1,125 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.sun;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for the Sun C89 Linker
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public final class C89Linker extends CommandLineLinker {
- private static final C89Linker dllLinker = new C89Linker("lib", ".so");
- private static final C89Linker instance = new C89Linker("", "");
- public static C89Linker getInstance() {
- return instance;
- }
- private String outputPrefix;
- private C89Linker(String outputPrefix, String outputSuffix) {
- super("ld", "/bogus", new String[]{".o", ".a", ".lib", ".x"},
- new String[]{}, outputSuffix, false, null);
- this.outputPrefix = outputPrefix;
- }
- protected void addBase(long base, Vector args) {
- }
- protected void addFixed(Boolean fixed, Vector args) {
- }
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if (linkType.isSharedLibrary()) {
- args.addElement("-G");
- }
- }
- protected void addIncremental(boolean incremental, Vector args) {
- }
- public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- super.addLibrarySets(task, libsets, preargs, midargs, endargs);
- StringBuffer buf = new StringBuffer("-l");
- for (int i = 0; i < libsets.length; i++) {
- LibrarySet set = libsets[i];
- File libdir = set.getDir(null);
- String[] libs = set.getLibs();
- if (libdir != null) {
- endargs.addElement("-L");
- endargs.addElement(libdir.getAbsolutePath());
- }
- for (int j = 0; j < libs.length; j++) {
- //
- // reset the buffer to just "-l"
- //
- buf.setLength(2);
- //
- // add the library name
- buf.append(libs[j]);
- //
- // add the argument to the list
- endargs.addElement(buf.toString());
- }
- }
- return null;
- }
- protected void addMap(boolean map, Vector args) {
- }
- protected void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- public String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- public File[] getLibraryPath() {
- return CUtil.getPathFromEnvironment("LIB", ";");
- }
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return C89Processor.getLibraryPatterns(libnames, libType);
- }
- public Linker getLinker(LinkType linkType) {
- if (linkType.isSharedLibrary()) {
- return dllLinker;
- }
- /*
- * if(linkType.isStaticLibrary()) { return
- * OS390Librarian.getInstance(); }
- */
- return instance;
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
- public String getOutputFileName(String baseName) {
- return outputPrefix + super.getOutputFileName(baseName);
- }
- public String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"-o", outputFile};
- }
- public boolean isCaseSensitive() {
- return C89Processor.isCaseSensitive();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java deleted file mode 100644 index c54c866966..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java +++ /dev/null @@ -1,116 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.sun;
-import java.util.Vector;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * A add-in class for Sun C89 compilers and linkers
- *
- * @author Hiram Chirino (cojonudo14@hotmail.com)
- */
-public class C89Processor {
- private static int addLibraryPatterns(String[] libnames, StringBuffer buf,
- String prefix, String extension, String[] patterns, int offset) {
- for (int i = 0; i < libnames.length; i++) {
- buf.setLength(0);
- buf.append(prefix);
- buf.append(libnames[i]);
- buf.append(extension);
- patterns[offset + i] = buf.toString();
- }
- return offset + libnames.length;
- }
- public static void addWarningSwitch(Vector args, int level) {
- switch (level) {
- /*
- * case 0: args.addElement("/W0"); break;
- *
- * case 1: args.addElement("/W1"); break;
- *
- * case 2: break;
- *
- * case 3: args.addElement("/W3"); break;
- *
- * case 4: args.addElement("/W4"); break;
- */
- }
- }
- public static String getCommandFileSwitch(String cmdFile) {
- StringBuffer buf = new StringBuffer("@");
- if (cmdFile.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(cmdFile);
- buf.append('\"');
- } else {
- buf.append(cmdFile);
- }
- return buf.toString();
- }
- public static void getDefineSwitch(StringBuffer buf, String define,
- String value) {
- buf.setLength(0);
- buf.append("-D");
- buf.append(define);
- if (value != null && value.length() > 0) {
- buf.append('=');
- buf.append(value);
- }
- }
- public static String getIncludeDirSwitch(String includeDir) {
- return "-I" + includeDir;
- }
- public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- StringBuffer buf = new StringBuffer();
- int patternCount = libnames.length*2;
- if (libType != null) {
- patternCount = libnames.length;
- }
- String[] patterns = new String[patternCount];
- int offset = 0;
- if (libType == null || "static".equals(libType.getValue())) {
- offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);
- }
- if (libType == null || !"static".equals(libType.getValue())) {
- offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns,
- offset);
- }
- return patterns;
- }
- public static String[] getOutputFileSwitch(String outPath) {
- StringBuffer buf = new StringBuffer("-o ");
- if (outPath.indexOf(' ') >= 0) {
- buf.append('\"');
- buf.append(outPath);
- buf.append('\"');
- } else {
- buf.append(outPath);
- }
- String[] retval = new String[]{buf.toString()};
- return retval;
- }
- public static void getUndefineSwitch(StringBuffer buf, String define) {
- buf.setLength(0);
- buf.append("-U");
- buf.append(define);
- }
- public static boolean isCaseSensitive() {
- return true;
- }
- private C89Processor() {
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java deleted file mode 100644 index a35d01af49..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java +++ /dev/null @@ -1,119 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.sun;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-/**
- * Adapter for the Sun (r) Forte (tm) C++ compiler
- *
- * @author Curt Arnold
- */
-public final class ForteCCCompiler extends GccCompatibleCCompiler {
- private static final ForteCCCompiler instance = new ForteCCCompiler("CC");
- /**
- * Gets singleton instance of this class
- */
- public static ForteCCCompiler getInstance() {
- return instance;
- }
- private String identifier;
- private File[] includePath;
- /**
- * Private constructor. Use ForteCCCompiler.getInstance() to get singleton
- * instance of this class.
- */
- private ForteCCCompiler(String command) {
- super(command, "-V", false, null, false, null);
- }
- public void addImpliedArgs(final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization) {
- args.addElement("-c");
- if (debug) {
- args.addElement("-g");
- }
- if (optimization != null) {
- if (optimization.isSpeed()) {
- args.addElement("-xO2");
- }
- }
- if (rtti != null) {
- if (rtti.booleanValue()) {
- args.addElement("-features=rtti");
- } else {
- args.addElement("-features=no%rtti");
- }
- }
- if (multithreaded) {
- args.addElement("-mt");
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("-KPIC");
- }
-
- }
- public void addWarningSwitch(Vector args, int level) {
- switch (level) {
- case 0 :
- args.addElement("-w");
- break;
- case 1 :
- case 2 :
- args.addElement("+w");
- break;
- case 3 :
- case 4 :
- case 5 :
- args.addElement("+w2");
- break;
- }
- }
- public File[] getEnvironmentIncludePath() {
- if (includePath == null) {
- File ccLoc = CUtil.getExecutableLocation("CC");
- if (ccLoc != null) {
- File compilerIncludeDir = new File(
- new File(ccLoc, "../include").getAbsolutePath());
- if (compilerIncludeDir.exists()) {
- includePath = new File[2];
- includePath[0] = compilerIncludeDir;
- }
- }
- if (includePath == null) {
- includePath = new File[1];
- }
- includePath[includePath.length - 1] = new File("/usr/include");
- }
- return includePath;
- }
- public Linker getLinker(LinkType linkType) {
- return ForteCCLinker.getInstance().getLinker(linkType);
- }
- public int getMaximumCommandLength() {
- return Integer.MAX_VALUE;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java deleted file mode 100644 index c39071af9f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java +++ /dev/null @@ -1,100 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.sun;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker;
-/**
- * Adapter for Sun (r) Forte(tm) C++ Linker
- *
- * @author Curt Arnold
- */
-public final class ForteCCLinker extends AbstractLdLinker {
- private static final String[] discardFiles = new String[]{".dll", ".so",
- ".sl"};
- private static final String[] objFiles = new String[]{".o", ".a", ".lib"};
- private static final ForteCCLinker arLinker = new ForteCCLinker("CC",
- objFiles, discardFiles, "lib", ".a");
- private static final ForteCCLinker dllLinker = new ForteCCLinker("CC",
- objFiles, discardFiles, "lib", ".so");
- private static final ForteCCLinker instance = new ForteCCLinker("CC",
- objFiles, discardFiles, "", "");
- public static ForteCCLinker getInstance() {
- return instance;
- }
- private File[] libDirs;
- private ForteCCLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix, String outputSuffix) {
- super(command, "-V", extensions, ignoredExtensions, outputPrefix,
- outputSuffix, false, null);
- }
- public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
- if (debug) {
- args.addElement("-g");
- }
- if (linkType.isStaticRuntime()) {
- args.addElement("-static");
- }
- if (linkType.isSharedLibrary()) {
- args.addElement("-G");
- }
- if (linkType.isStaticLibrary()) {
- args.addElement("-xar");
- }
- }
- public void addIncremental(boolean incremental, Vector args) {
- /*
- * if (incremental) { args.addElement("-xidlon"); } else {
- * args.addElement("-xidloff"); }
- */
- }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- File CCloc = CUtil.getExecutableLocation("CC");
- if (CCloc != null) {
- File compilerLib = new File(new File(CCloc, "../lib")
- .getAbsolutePath());
- if (compilerLib.exists()) {
- libDirs = new File[2];
- libDirs[0] = compilerLib;
- }
- }
- if (libDirs == null) {
- libDirs = new File[1];
- }
- }
- libDirs[libDirs.length - 1] = new File("/usr/lib");
- return libDirs;
- }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return arLinker;
- }
- if (type.isSharedLibrary()) {
- return dllLinker;
- }
- return instance;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java deleted file mode 100644 index d08b9fbbf6..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxCCompiler.java +++ /dev/null @@ -1,192 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.ti;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.OptimizationEnum;
-
-
-import org.apache.tools.ant.types.Environment;
-/**
- * Adapter for TI DSP compilers with cl** commands
- *
- * @author CurtA
- */
-public class ClxxCCompiler extends CommandLineCCompiler {
- /**
- * Header file extensions
- */
- private static final String[] headerExtensions = new String[]{".h", ".hpp",
- ".inl"};
- /**
- * Source file extensions
- */
- private static final String[] sourceExtensions = new String[]{".c", ".cc",
- ".cpp", ".cxx", ".c++"};
- /**
- * Singleton for TMS320C55x
- */
- private static final ClxxCCompiler cl55 = new ClxxCCompiler("cl55", false,
- null);
- /**
- * Singleton for TMS320C6000
- */
- private static final ClxxCCompiler cl6x = new ClxxCCompiler("cl6x", false,
- null);
- public static ClxxCCompiler getCl55Instance() {
- return cl55;
- }
- public static ClxxCCompiler getCl6xInstance() {
- return cl6x;
- }
- /**
- * Private constructor
- *
- * @param command
- * executable name
- * @param newEnvironment
- * Change environment
- * @param env
- * New environment
- */
- private ClxxCCompiler(String command, boolean newEnvironment,
- Environment env) {
- super(command, "-h", sourceExtensions, headerExtensions, ".o", false,
- null, newEnvironment, env);
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addImpliedArgs(java.util.Vector,
- * boolean, boolean, boolean,
- * net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- protected void addImpliedArgs(
- final Vector args,
- final boolean debug,
- final boolean multithreaded,
- final boolean exceptions,
- final LinkType linkType,
- final Boolean rtti,
- final OptimizationEnum optimization,
- final Boolean defaultflag) {
- if (debug) {
- args.addElement("-gw");
- }
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addWarningSwitch(java.util.Vector,
- * int)
- */
- protected void addWarningSwitch(Vector args, int warnings) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getDefineSwitch(java.lang.StringBuffer,
- * java.lang.String, java.lang.String)
- */
- protected void getDefineSwitch(StringBuffer buffer, String define,
- String value) {
- buffer.append("-d");
- buffer.append(define);
- if (value != null) {
- buffer.append('=');
- buffer.append(value);
- }
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getEnvironmentIncludePath()
- */
- protected File[] getEnvironmentIncludePath() {
- File[] c_dir = CUtil.getPathFromEnvironment("C_DIR", ";");
- File[] cx_dir = CUtil.getPathFromEnvironment("C6X_C_DIR", ";");
- if (c_dir.length == 0) {
- return cx_dir;
- }
- if (cx_dir.length == 0) {
- return c_dir;
- }
- File[] combo = new File[c_dir.length + cx_dir.length];
- for (int i = 0; i < cx_dir.length; i++) {
- combo[i] = cx_dir[i];
- }
- for (int i = 0; i < c_dir.length; i++) {
- combo[i + cx_dir.length] = c_dir[i];
- }
- return combo;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getIncludeDirSwitch(java.lang.String)
- */
- protected String getIncludeDirSwitch(String source) {
- return "-I" + source;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- if (this == cl6x) {
- return ClxxLibrarian.getCl6xInstance();
- }
- return ClxxLibrarian.getCl55Instance();
- }
- if (type.isSharedLibrary()) {
- if (this == cl6x) {
- return ClxxLinker.getCl6xDllInstance();
- }
- return ClxxLinker.getCl55DllInstance();
- }
- if (this == cl6x) {
- return ClxxLinker.getCl6xInstance();
- }
- return ClxxLinker.getCl55Instance();
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getMaximumCommandLength()
- */
- public int getMaximumCommandLength() {
- return 1024;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#getUndefineSwitch(java.lang.StringBuffer,
- * java.lang.String)
- */
- protected void getUndefineSwitch(StringBuffer buffer, String define) {
- buffer.append("-u");
- buffer.append(define);
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java deleted file mode 100644 index 082d1a477f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLibrarian.java +++ /dev/null @@ -1,162 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.ti;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- *
- * Adapter for TI DSP librarian
- * *
- * @author CurtA
- */
-public class ClxxLibrarian extends CommandLineLinker {
- private static final ClxxLibrarian cl55Instance = new ClxxLibrarian("ar55");
- private static final ClxxLibrarian cl6xInstance = new ClxxLibrarian("ar6x");
- public static final ClxxLibrarian getCl55Instance() {
- return cl55Instance;
- }
- public static final ClxxLibrarian getCl6xInstance() {
- return cl6xInstance;
- }
- private ClxxLibrarian(String command) {
- super(command, null, new String[]{".o"}, new String[0], ".lib", false,
- null);
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long,
- * java.util.Vector)
- */
- protected void addBase(long base, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean,
- * java.util.Vector)
- */
- protected void addFixed(Boolean fixed, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean,
- * net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector)
- */
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean,
- * java.util.Vector)
- */
- protected void addIncremental(boolean incremental, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean,
- * java.util.Vector)
- */
- protected void addMap(boolean map, Vector args) {
- // TODO Auto-generated method stub
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int,
- * java.util.Vector)
- */
- protected void addStack(int stack, Vector args) {
- // TODO Auto-generated method stub
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String)
- */
- protected String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath()
- */
- public File[] getLibraryPath() {
- return new File[0];
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[])
- */
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- return new String[0];
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- public Linker getLinker(LinkType linkType) {
- return null;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength()
- */
- protected int getMaximumCommandLength() {
- return 1024;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String)
- */
- protected String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"-o", outputFile};
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive()
- */
- public boolean isCaseSensitive() {
- // TODO Auto-generated method stub
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java deleted file mode 100644 index 43ee7c0662..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/ti/ClxxLinker.java +++ /dev/null @@ -1,181 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.ti;
-import java.io.File;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
-import net.sf.antcontrib.cpptasks.compiler.LinkType;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
-
-/**
- * Adapter for TI DSP linkers
- * *
- * @author CurtA
- *
- */
-public class ClxxLinker extends CommandLineLinker {
- private static final ClxxLinker cl55DllInstance = new ClxxLinker("lnk55",
- ".dll");
- private static final ClxxLinker cl55Instance = new ClxxLinker("lnk55",
- ".exe");
- private static final ClxxLinker cl6xDllInstance = new ClxxLinker("lnk6x",
- ".dll");
- private static final ClxxLinker cl6xInstance = new ClxxLinker("lnk6x",
- ".exe");
- public static ClxxLinker getCl55DllInstance() {
- return cl55DllInstance;
- }
- public static ClxxLinker getCl55Instance() {
- return cl55Instance;
- }
- public static ClxxLinker getCl6xDllInstance() {
- return cl6xDllInstance;
- }
- public static ClxxLinker getCl6xInstance() {
- return cl6xInstance;
- }
- private ClxxLinker(String command, String outputSuffix) {
- super(command, "-h", new String[]{".o", ".lib", ".res"}, new String[]{
- ".map", ".pdb", ".lnk"}, outputSuffix, false, null);
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addBase(long,
- * java.util.Vector)
- */
- protected void addBase(long base, Vector args) {
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addFixed(java.lang.Boolean,
- * java.util.Vector)
- */
- protected void addFixed(Boolean fixed, Vector args) {
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addImpliedArgs(boolean,
- * net.sf.antcontrib.cpptasks.compiler.LinkType, java.util.Vector)
- */
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args, Boolean defaultflag) {
- if (linkType.isSharedLibrary()) {
- args.addElement("-abs");
- }
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addIncremental(boolean,
- * java.util.Vector)
- */
- protected void addIncremental(boolean incremental, Vector args) {
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addMap(boolean,
- * java.util.Vector)
- */
- protected void addMap(boolean map, Vector args) {
- if (map) {
- args.addElement("-m");
- }
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addStack(int,
- * java.util.Vector)
- */
- protected void addStack(int stack, Vector args) {
- }
- /* (non-Javadoc)
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector)
- */
- protected void addEntry(String entry, Vector args) {
- }
-
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getCommandFileSwitch(java.lang.String)
- */
- protected String getCommandFileSwitch(String commandFile) {
- return "@" + commandFile;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPath()
- */
- public File[] getLibraryPath() {
- return new File[0];
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#getLibraryPatterns(java.lang.String[])
- */
- public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
- //
- // TODO: Looks bogus, should be .a or .so's not .o's
- //
- String[] libpats = new String[libnames.length];
- for (int i = 0; i < libnames.length; i++) {
- libpats[i] = libnames[i] + ".o";
- }
- return libpats;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Processor#getLinker(net.sf.antcontrib.cpptasks.compiler.LinkType)
- */
- public Linker getLinker(LinkType linkType) {
- return this;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getMaximumCommandLength()
- */
- protected int getMaximumCommandLength() {
- return 1024;
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#getOutputFileSwitch(java.lang.String)
- */
- protected String[] getOutputFileSwitch(String outputFile) {
- return new String[]{"-o", outputFile};
- }
- /*
- * (non-Javadoc)
- *
- * @see net.sf.antcontrib.cpptasks.compiler.Linker#isCaseSensitive()
- */
- public boolean isCaseSensitive() {
- // TODO Auto-generated method stub
- return false;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java deleted file mode 100644 index 87babcf740..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AslcompilerArgument.java +++ /dev/null @@ -1,30 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-
-/**
- * A aslcompiler command line argument.
- */
-public class AslcompilerArgument extends CommandLineArgument {
- public AslcompilerArgument () {
- }
-
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
\ No newline at end of file diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java deleted file mode 100644 index 1b5f54d9a7..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/AssemblerArgument.java +++ /dev/null @@ -1,30 +0,0 @@ -/*
- *
- * Copyright 2001-2005 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-
-/**
- * A assembler command line argument.
- */
-public class AssemblerArgument extends CommandLineArgument {
- public AssemblerArgument () {
- }
-
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java deleted file mode 100644 index 91ab2f6327..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CommandLineArgument.java +++ /dev/null @@ -1,122 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-
-import org.apache.tools.ant.types.EnumeratedAttribute;
-import java.io.File;
-/**
- * An compiler/linker command line flag.
- */
-public class CommandLineArgument {
- /**
- * Enumerated attribute with the values "start", "mid" and "end",
- */
- public static class LocationEnum extends EnumeratedAttribute {
- public String[] getValues() {
- return new String[]{"start", "mid", "end"};
- }
- }
- private String ifCond;
- private int location;
- private String unlessCond;
- private String value;
- private File file;
- public CommandLineArgument() {
- }
- public int getLocation() {
- return location;
- }
- public String getValue() {
- return value;
- }
- public File getFile() {
- return file;
- }
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- */
- public boolean isActive(org.apache.tools.ant.Project p) {
- if (value == null) {
- return false;
- }
- if (ifCond != null && p.getProperty(ifCond) == null) {
- return false;
- } else if (unlessCond != null && p.getProperty(unlessCond) != null) {
- return false;
- }
- return true;
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The argument will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- */
- public void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Specifies relative location of argument on command line. "start" will
- * place argument at start of command line, "mid" will place argument after
- * all "start" arguments but before filenames, "end" will place argument
- * after filenames.
- *
- */
- public void setLocation(LocationEnum location) {
- this.location = location.getIndex();
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the argument will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessCond = propName;
- }
- /**
- * Specifies the string that should appear on the command line. The
- * argument will be quoted if it contains embedded blanks. Use multiple
- * arguments to avoid quoting.
- *
- */
- public void setValue(String value) {
- this.value = value;
- }
- /**
- * Specifies the file which lists many strings that should appear on
- * the command line. Each line is one argument. The argument will be
- * quated if it contains embedded blanks. Use multiple arguments in
- * file to avoid quating.
- *
- * @param file
- * name of the file
- */
- public void setFile(File file) {
- this.file = file;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java deleted file mode 100644 index ca9e90e732..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/CompilerArgument.java +++ /dev/null @@ -1,28 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-/**
- * A compiler command line argument.
- */
-public class CompilerArgument extends CommandLineArgument {
- public CompilerArgument() {
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java deleted file mode 100644 index af2d141e99..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalFileSet.java +++ /dev/null @@ -1,84 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import net.sf.antcontrib.cpptasks.CUtil;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.AbstractFileSet;
-import org.apache.tools.ant.types.FileSet;
-/**
- * An Ant FileSet object augmented with if and unless conditions.
- *
- * @author Curt Arnold
- */
-public class ConditionalFileSet extends FileSet {
- private String ifCond;
- private String unlessCond;
- public ConditionalFileSet() {
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /**
- * overrides FileSet's implementation which would throw an exception since
- * the referenced object isn't this type.
- */
- protected AbstractFileSet getRef(Project p) {
- return (AbstractFileSet) getRefid().getReferencedObject(p);
- }
- /**
- * Returns true if the Path's if and unless conditions (if any) are
- * satisfied.
- */
- public boolean isActive() throws BuildException {
- Project p = getProject();
- if (p == null) {
- throw new java.lang.IllegalStateException(
- "setProject() should have been called");
- }
- return CUtil.isActive(p, ifCond, unlessCond);
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The fileset will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- */
- public void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the fileset will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessCond = propName;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java deleted file mode 100644 index dc21189c15..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/ConditionalPath.java +++ /dev/null @@ -1,92 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.Path;
-/**
- * An Ant Path object augmented with if and unless conditionals
- *
- * @author Curt Arnold
- */
-public class ConditionalPath extends Path {
- private String ifCond;
- private String unlessCond;
- private File file;
- public ConditionalPath(Project project) {
- super(project);
- }
- public ConditionalPath(Project p, String path) {
- super(p, path);
- }
- public File getFile() {
- return file;
- }
- /**
- * Returns true if the Path's if and unless conditions (if any) are
- * satisfied.
- */
- public boolean isActive(org.apache.tools.ant.Project p)
- throws BuildException {
- return CUtil.isActive(p, ifCond, unlessCond);
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The path will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the path will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessCond = propName;
- }
- /**
- * Specifies the file which lists many include paths that should appear on
- * the command line. Each line is an include path. The includepath will be
- * quated if it contains embedded blanks.
- *
- * @param file
- * name of the file
- */
- public void setFile(File file) {
- this.file = file;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java deleted file mode 100644 index 824e939481..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineArgument.java +++ /dev/null @@ -1,38 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-/**
- * Preprocessor macro definition.
- *
- * @author Mark A Russell <a
- * href="mailto:mark_russell@csgsystems.com">mark_russell@csg_systems.com
- * </a>
- */
-public class DefineArgument extends UndefineArgument {
- private String value;
- public DefineArgument() {
- super(true);
- }
- /** Returns the value of the define */
- public final String getValue() {
- return value;
- }
- /** Set the value attribute */
- public final void setValue(String value) {
- this.value = value;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java deleted file mode 100644 index 9d229fb0ff..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/DefineSet.java +++ /dev/null @@ -1,199 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.DataType;
-import org.apache.tools.ant.types.Reference;
-/**
- * Set of preprocessor macro defines and undefines.
- *
- * @author Mark A Russell <a
- * href="mailto:mark_russell@csgsystems.com">mark_russell@csg_systems.com
- * </a>
- * @author Adam Murdoch
- */
-public class DefineSet extends DataType {
- private Vector defineList = new Vector();
- private String ifCond = null;
- private String unlessCond = null;
- /**
- *
- * Adds a define element.
- *
- * @throws BuildException
- * if reference
- */
- public void addDefine(DefineArgument arg) throws BuildException {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- defineList.addElement(arg);
- }
- /** Adds defines/undefines. */
- private void addDefines(String[] defs, boolean isDefine) {
- for (int i = 0; i < defs.length; i++) {
- UndefineArgument def;
- if (isDefine) {
- def = new DefineArgument();
- } else {
- def = new UndefineArgument();
- }
- def.setName(defs[i]);
- defineList.addElement(def);
- }
- }
- /**
- *
- * Adds an undefine element.
- *
- * @throws BuildException
- * if reference
- */
- public void addUndefine(UndefineArgument arg) throws BuildException {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- defineList.addElement(arg);
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /** Returns the defines and undefines in this set. */
- public UndefineArgument[] getDefines() throws BuildException {
- if (isReference()) {
- DefineSet defset = (DefineSet) getCheckedRef(DefineSet.class,
- "DefineSet");
- return defset.getDefines();
- } else {
- if (isActive()) {
- UndefineArgument[] defs = new UndefineArgument[defineList
- .size()];
- defineList.copyInto(defs);
- return defs;
- } else {
- return new UndefineArgument[0];
- }
- }
- }
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- *
- * @exception BuildException
- * throws build exception if name is not set
- */
- public final boolean isActive() throws BuildException {
- return CUtil.isActive(getProject(), ifCond, unlessCond);
- }
- /**
- * A comma-separated list of preprocessor macros to define. Use nested
- * define elements to define macro values.
- *
- * @param defList
- * comma-separated list of preprocessor macros
- * @throws BuildException
- * throw if defineset is a reference
- */
- public void setDefine(CUtil.StringArrayBuilder defList)
- throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- addDefines(defList.getValue(), true);
- }
- /**
- * Sets a description of the current data type.
- */
- public void setDescription(String desc) {
- super.setDescription(desc);
- }
- /**
- * Sets an id that can be used to reference this element.
- *
- * @param id
- * id
- */
- public void setId(String id) {
- //
- // this is actually accomplished by a different
- // mechanism, but we can document it
- //
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The define will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public final void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Specifies that this element should behave as if the content of the
- * element with the matching id attribute was inserted at this location. If
- * specified, no other attributes or child content should be specified,
- * other than "description".
- *
- */
- public void setRefid(Reference r) throws BuildException {
- if (!defineList.isEmpty()) {
- throw tooManyAttributes();
- }
- super.setRefid(r);
- }
- /**
- * A comma-separated list of preprocessor macros to undefine.
- *
- * @param undefList
- * comma-separated list of preprocessor macros
- * @throws BuildException
- * throw if defineset is a reference
- */
- public void setUndefine(CUtil.StringArrayBuilder undefList)
- throws BuildException {
- if (isReference()) {
- throw tooManyAttributes();
- }
- addDefines(undefList.getValue(), false);
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the define will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public final void setUnless(String propName) {
- unlessCond = propName;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java deleted file mode 100644 index d95959f631..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/FlexLong.java +++ /dev/null @@ -1,59 +0,0 @@ -/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import java.lang.reflect.Method;
-
-/**
- * Helper class which can be used for Ant task attribute setter methods to
- * allow the build file to specify a long in either decimal, octal, or
- * hexadecimal format.
- * // FlexInteger author
- * @author Erik Hatcher
- * @see org.apache.tools.ant.types.FlexInteger
- */
-public class FlexLong {
- private Long value;
- /**
- * Constructor used by Ant's introspection mechanism for attribute
- * population
- */
- public FlexLong(String value) {
- // Java 1.1 did not support Long.decode().. so we call it by
- // reflection.
- try {
- Method m = Long.class
- .getMethod("decode", new Class[]{String.class});
- Object rc = m.invoke(null, new Object[]{value});
- this.value = (Long) rc;
- } catch (Exception e) {
- // Try it the old fashioned way, we must be on a 1.1 jre
- this.value = new Long(value);
- }
- }
- /**
- * Returns the decimal integer value
- */
- public long longValue() {
- return value.longValue();
- }
- /**
- * Overridden method to return the decimal value for display
- */
- public String toString() {
- return value.toString();
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java deleted file mode 100644 index edcc42103c..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/IncludePath.java +++ /dev/null @@ -1,38 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import org.apache.tools.ant.Project;
-/**
- * An include path.
- *
- * Works like other paths in Ant with with the addition of "if" and "unless"
- * conditions.
- *
- * @author Curt Arnold
- */
-public class IncludePath extends ConditionalPath {
- public IncludePath(Project project) {
- super(project);
- }
- public IncludePath(Project p, String path) {
- super(p, path);
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java deleted file mode 100644 index d522ccc36f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibrarySet.java +++ /dev/null @@ -1,290 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import java.io.File;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.FileVisitor;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.ProjectComponent;
-import org.apache.tools.ant.types.FileSet;
-import org.apache.tools.ant.types.PatternSet;
-/**
- * A set of library names. Libraries can also be added to a link by specifying
- * them in a fileset.
- *
- * For most Unix-like compilers, libset will result in a series of -l and -L
- * linker arguments. For Windows compilers, the library names will be used to
- * locate the appropriate library files which will be added to the linkers
- * input file list as if they had been specified in a fileset.
- *
- * @author Mark A Russell <a
- * href="mailto:mark_russell@csgsystems.com">mark_russell@csg_systems.com
- * </a>
- * @author Adam Murdoch
- * @author Curt Arnold
- */
-public class LibrarySet extends ProjectComponent {
- private String dataset;
- private boolean explicitCaseSensitive;
- private String ifCond;
- private String[] libnames;
- private final FileSet set = new FileSet();
- private String unlessCond;
- private LibraryTypeEnum libraryType;
- public LibrarySet() {
- libnames = new String[0];
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /**
- * Gets the dataset. Used on OS390 if the libs are in a dataset.
- *
- * @return Returns a String
- */
- public String getDataset() {
- return dataset;
- }
- public File getDir(Project project) {
- return set.getDir(project);
- }
- protected FileSet getFileSet() {
- return set;
- }
- public String[] getLibs() {
- String[] retval = (String[]) libnames.clone();
- return retval;
- }
-
- /**
- * Gets preferred library type
- *
- * @return library type, may be null.
- */
- public LibraryTypeEnum getType() {
- return libraryType;
- }
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- */
- public boolean isActive(org.apache.tools.ant.Project p) {
- if (p == null) {
- throw new NullPointerException("p");
- }
- if (ifCond != null) {
- String ifValue = p.getProperty(ifCond);
- if (ifValue != null) {
- if (ifValue.equals("no") || ifValue.equals("false")) {
- throw new BuildException(
- "property "
- + ifCond
- + " used as if condition has value "
- + ifValue
- + " which suggests a misunderstanding of if attributes");
- }
- } else {
- return false;
- }
- }
- if (unlessCond != null) {
- String unlessValue = p.getProperty(unlessCond);
- if (unlessValue != null) {
- if (unlessValue.equals("no") || unlessValue.equals("false")) {
- throw new BuildException(
- "property "
- + unlessCond
- + " used as unless condition has value "
- + unlessValue
- + " which suggests a misunderstanding of unless attributes");
- }
- return false;
- }
- }
- if (libnames.length == 0) {
- p.log("libnames not specified or empty.", Project.MSG_WARN);
- return false;
- }
- return true;
- }
- /**
- * Sets case sensitivity of the file system. If not set, will default to
- * the linker's case sensitivity.
- *
- * @param isCaseSensitive
- * "true"|"on"|"yes" if file system is case sensitive,
- * "false"|"off"|"no" when not.
- */
- public void setCaseSensitive(boolean isCaseSensitive) {
- explicitCaseSensitive = true;
- set.setCaseSensitive(isCaseSensitive);
- }
- /**
- * Sets the dataset. Used on OS390 if the libs are in a dataset.
- *
- * @param dataset
- * The dataset to set
- */
- public void setDataset(String dataset) {
- this.dataset = dataset;
- }
- /**
- * Library directory.
- *
- * @param dir
- * library directory
- *
- */
- public void setDir(File dir) throws BuildException {
- set.setDir(dir);
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The library set will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public void setIf(String propName) {
- ifCond = propName;
- }
- /**
- * Comma-separated list of library names without leading prefixes, such as
- * "lib", or extensions, such as ".so" or ".a".
- *
- */
- public void setLibs(CUtil.StringArrayBuilder libs) throws BuildException {
- libnames = libs.getValue();
- // If this is not active.. then it's ok if the lib names are invalid.
- // so we can do a: <libset if="x.lib" dir="." libs="${x.lib}"/>
- if (!isActive(getProject()))
- return;
- for (int i = 0; i < libnames.length; i++) {
- int lastDot = libnames[i].lastIndexOf('.');
- if (lastDot >= 0) {
- String extension = libnames[i].substring(lastDot);
- if (extension.equalsIgnoreCase(".lib")
- || extension.equalsIgnoreCase(".so")
- || extension.equalsIgnoreCase(".a")) {
- getProject().log(
- "Suspicious library name ending with \""
- + extension + "\": " + libnames[i], Project.MSG_DEBUG );
- }
- }
- if (libnames[i].length() >= 3
- && libnames[i].substring(0, 3).equalsIgnoreCase("lib")) {
- getProject().log(
- "Suspicious library name starting with \"lib\": "
- + libnames[i], Project.MSG_DEBUG);
- }
- }
- }
- public void setProject(Project project) {
- set.setProject(project);
- super.setProject(project);
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the library set will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public void setUnless(String propName) {
- unlessCond = propName;
- }
-
- /**
- * Sets the preferred library type. Supported values "shared", "static", and
- * "framework". "framework" is equivalent to "shared" on non-Darwin platforms.
- */
- public void setType(LibraryTypeEnum type) {
- this.libraryType = type;
- }
-
- public void visitLibraries(Project project, Linker linker, File[] libpath,
- FileVisitor visitor) throws BuildException {
- FileSet localSet = (FileSet) set.clone();
- //
- // unless explicitly set
- // will default to the linker case sensitivity
- //
- if (!explicitCaseSensitive) {
- boolean linkerCaseSensitive = linker.isCaseSensitive();
- localSet.setCaseSensitive(linkerCaseSensitive);
- }
- //
- // if there was a libs attribute then
- // add the corresponding patterns to the FileSet
- //
- if (libnames != null && libnames.length > 0) {
- String[] patterns = linker.getLibraryPatterns(libnames, libraryType);
- //
- // if no patterns, then linker does not support libraries
- //
- if (patterns.length > 0) {
- for (int i = 0; i < patterns.length; i++) {
- PatternSet.NameEntry entry = localSet.createInclude();
- entry.setName(patterns[i]);
- }
- //
- // if there was no specified directory then
- // run through the libpath backwards
- //
- if (localSet.getDir(project) == null) {
- //
- // scan libpath in reverse order
- // to give earlier entries priority
- //
- for (int j = libpath.length - 1; j >= 0; j--) {
- FileSet clone = (FileSet) localSet.clone();
- clone.setDir(libpath[j]);
- DirectoryScanner scanner = clone.getDirectoryScanner(project);
- File basedir = scanner.getBasedir();
- String[] files = scanner.getIncludedFiles();
- for (int k = 0; k < files.length; k++) {
- visitor.visit(basedir, files[k]);
- }
- }
- } else {
- DirectoryScanner scanner = localSet.getDirectoryScanner(project);
- File basedir = scanner.getBasedir();
- String[] files = scanner.getIncludedFiles();
- for (int k = 0; k < files.length; k++) {
- visitor.visit(basedir, files[k]);
- }
- }
- }
- }
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java deleted file mode 100644 index 82d7947bf2..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.java +++ /dev/null @@ -1,48 +0,0 @@ -/*
- *
- * Copyright 2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-/**
- * Enumeration of library types for LibrarySet
- *
- * @author Curt Arnold
- *
- */
-public class LibraryTypeEnum extends EnumeratedAttribute {
- /**
- * Constructor
- *
- * Set by default to "shared"
- *
- * @see java.lang.Object#Object()
- */
- public LibraryTypeEnum() {
- setValue("shared");
- }
- /**
- * Gets list of acceptable values
- *
- * @see org.apache.tools.ant.types.EnumeratedAttribute#getValues()
- */
- public String[] getValues() {
- return new String[]{"shared", // prefer shared libraries
- "static", // prefer static libraries
- "framework" // framework libraries (Mac OS/X)
- // equiv to shared on other platforms
- };
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java deleted file mode 100644 index 89bff1881b..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/LinkerArgument.java +++ /dev/null @@ -1,28 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-/**
- * A linker command line argument.
- */
-public class LinkerArgument extends CommandLineArgument {
- public LinkerArgument() {
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java deleted file mode 100644 index be0dbd537a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemIncludePath.java +++ /dev/null @@ -1,45 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import org.apache.tools.ant.Project;
-/**
- * A system include path.
- *
- * Files located using a system include path will not participate in dependency
- * analysis.
- *
- * Standard include paths for a compiler should not be specified since these
- * should be determined from environment variables or configuration files by
- * the compiler adapter.
- *
- * Works like other paths in Ant with with the addition of "if" and "unless"
- * conditions.
- *
- * @author Curt Arnold
- */
-public class SystemIncludePath extends ConditionalPath {
- public SystemIncludePath(Project project) {
- super(project);
- }
- public SystemIncludePath(Project p, String path) {
- super(p, path);
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java deleted file mode 100644 index 02d08c8ac8..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/SystemLibrarySet.java +++ /dev/null @@ -1,37 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-/**
- * A set of system library names. Timestamp or location of system libraries are
- * not considered in dependency analysis.
- *
- * Libraries can also be added to a link by specifying them in a fileset.
- *
- * For most Unix-like compilers, syslibset will result in a series of -l and -L
- * linker arguments. For Windows compilers, the library names will be used to
- * locate the appropriate library files which will be added to the linkers
- * input file list as if they had been specified in a fileset.
- */
-public class SystemLibrarySet extends LibrarySet {
- public SystemLibrarySet() {
- super();
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java deleted file mode 100644 index 2a18fca6d1..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/types/UndefineArgument.java +++ /dev/null @@ -1,153 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.types;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CUtil;
-
-import org.apache.tools.ant.BuildException;
-/**
- * Preprocessor macro undefinition.
- *
- * @author Mark A Russell <a
- * href="mailto:mark_russell@csgsystems.com">mark_russell@csg_systems.com
- * </a>
- */
-public class UndefineArgument {
- /**
- * This method returns an array of UndefineArgument and DefineArgument's by
- * merging a base list with an override list.
- *
- * Any define in the base list with a name that appears in the override
- * list is suppressed. All entries in the override list are preserved
- *
- */
- public static UndefineArgument[] merge(UndefineArgument[] base,
- UndefineArgument[] override) {
- if (base.length == 0) {
- UndefineArgument[] overrideClone = (UndefineArgument[]) override
- .clone();
- return overrideClone;
- }
- if (override.length == 0) {
- UndefineArgument[] baseClone = (UndefineArgument[]) base.clone();
- return baseClone;
- }
- Vector unduplicated = new Vector(base.length);
- for (int i = 0; i < base.length; i++) {
- UndefineArgument current = base[i];
- String currentName = current.getName();
- boolean match = false;
- if (currentName == null) {
- match = true;
- } else {
- for (int j = 0; j < override.length; j++) {
- UndefineArgument over = override[j];
- String overName = over.getName();
- if (overName != null && overName.equals(currentName)) {
- match = true;
- break;
- }
- }
- }
- if (!match) {
- unduplicated.addElement(current);
- }
- }
- UndefineArgument[] combined = new UndefineArgument[unduplicated.size()
- + override.length];
- unduplicated.copyInto(combined);
- int offset = unduplicated.size();
- for (int i = 0; i < override.length; i++) {
- combined[offset + i] = override[i];
- }
- return combined;
- }
- private boolean define = false;
- private String ifCond;
- private String name;
- private String unlessCond;
- public UndefineArgument() {
- }
- protected UndefineArgument(boolean isDefine) {
- this.define = isDefine;
- }
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
- /** Returns the name of the define */
- public final String getName() {
- return name;
- }
- /** Returns the value of the define */
- public String getValue() {
- return null;
- }
- /**
- * Returns true if the define's if and unless conditions (if any) are
- * satisfied.
- *
- * @exception BuildException
- * throws build exception if name is not set
- */
- public final boolean isActive(org.apache.tools.ant.Project p)
- throws BuildException {
- if (name == null) {
- throw new BuildException("<define> is missing name attribute");
- }
- return CUtil.isActive(p, ifCond, unlessCond);
- }
- /** Returns true if this is a define, false if an undefine. */
- public final boolean isDefine() {
- return define;
- }
- /**
- * Sets the property name for the 'if' condition.
- *
- * The define will be ignored unless the property is defined.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") will throw an exception when
- * evaluated.
- *
- * @param propName
- * property name
- */
- public final void setIf(String propName) {
- ifCond = propName;
- }
- /** Set the name attribute */
- public final void setName(String name) {
- this.name = name;
- }
- /**
- * Set the property name for the 'unless' condition.
- *
- * If named property is set, the define will be ignored.
- *
- * The value of the property is insignificant, but values that would imply
- * misinterpretation ("false", "no") of the behavior will throw an
- * exception when evaluated.
- *
- * @param propName
- * name of property
- */
- public final void setUnless(String propName) {
- unlessCond = propName;
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java deleted file mode 100644 index 3ed6c9652f..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/CommandLineUserDefine.java +++ /dev/null @@ -1,297 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.userdefine;
-
-import java.io.File;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-import net.sf.antcontrib.cpptasks.CUtil;
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-import net.sf.antcontrib.cpptasks.types.ConditionalFileSet;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.DirectoryScanner;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.types.Environment;
-import org.apache.tools.ant.types.Path;
-import org.apache.tools.ant.types.Environment.Variable;
-
-/**
- *
- */
-public class CommandLineUserDefine {
-
- String includePathDelimiter = null;
-
- String outputDelimiter = null;
-
- public void command(CCTask cctask, UserDefineDef userdefine) {
- boolean isGccCommand = userdefine.getFamily().equalsIgnoreCase("GCC");
- File workdir;
- Project project = cctask.getProject();
- if (userdefine.getWorkdir() == null) {
- workdir = new File(".");
- } else {
- workdir = userdefine.getWorkdir();
- }
-
- //
- // generate cmdline= command + args + includepath + endargs + outfile
- //
- Vector args = new Vector();
- Vector argsWithoutSpace = new Vector();
- Vector endargs = new Vector();
- Vector endargsWithoutSpace = new Vector();
- Vector includePath = new Vector();
-
- //
- // get Args.
- //
- CommandLineArgument[] argument = userdefine.getActiveProcessorArgs();
- for (int j = 0; j < argument.length; j++) {
- if (argument[j].getLocation() == 0) {
- args.addElement(argument[j].getValue());
- } else {
- endargs.addElement(argument[j].getValue());
- }
- }
-
- //
- // get include path.
- //
- String[] incPath = userdefine.getActiveIncludePaths();
- for (int j = 0; j < incPath.length; j++) {
- includePath.addElement(includePathDelimiter + incPath[j]);
- }
-
- //
- // Remove space in args and endargs.
- //
- for (int i = 0; i < args.size(); i++) {
- String str = (String) args.get(i);
- StringTokenizer st = new StringTokenizer(str, " \t");
- while (st.hasMoreTokens()) {
- argsWithoutSpace.addElement(st.nextToken());
- }
- }
- for (int i = 0; i < endargs.size(); i++) {
- String str = (String) endargs.get(i);
- StringTokenizer st = new StringTokenizer(str, " \t");
- while (st.hasMoreTokens()) {
- endargsWithoutSpace.addElement(st.nextToken());
- }
- }
-
- int cmdLen = 0;
- //
- // command + args + endargs + includepath + sourcefile
- //
- cmdLen = 1 + argsWithoutSpace.size() + endargsWithoutSpace.size()
- + includePath.size() + 1;
- String[] libSet = userdefine.getLibset();
- if (libSet != null && libSet.length > 0) {
- cmdLen = cmdLen + libSet.length;
- if (isGccCommand) {
- cmdLen += 2; // we need -( and -) to group libs for GCC
- }
- }
-
- //
- // In gcc the "cr" flag should follow space then add outputfile name,
- // otherwise
- // it will pop error.
- // TBD
- if (outputDelimiter != null && userdefine.getOutputFile() != null
- && outputDelimiter.trim().length() > 0) {
- if (outputDelimiter.trim().equalsIgnoreCase("-cr")) {
- cmdLen = cmdLen + 2;
- } else {
- cmdLen++;
- }
- }
-
- //
- // for every source file
- // if file is header file, just skip it (add later)
- //
- Vector srcSets = userdefine.getSrcSets();
-
- //
- // if have source file append source file in command line.
- //
- Set allSrcFiles = new LinkedHashSet();
-
- for (int i = 0; i < srcSets.size(); i++) {
- ConditionalFileSet srcSet = (ConditionalFileSet) srcSets
- .elementAt(i);
- if (srcSet.isActive()) {
- //
- // Find matching source files
- //
- DirectoryScanner scanner = srcSet.getDirectoryScanner(project);
- //
- // Check each source file - see if it needs compilation
- //
- String[] fileNames = scanner.getIncludedFiles();
- for (int j = 0; j < fileNames.length; j++) {
- allSrcFiles.add(scanner.getBasedir() + "/" + fileNames[j]);
- if (isGccCommand) {
- System.out.println("[" + userdefine.getType() + "] "
- + fileNames[j]);
- }
- }
- }
- }
-
- String[] fileNames = (String[]) allSrcFiles
- .toArray(new String[allSrcFiles.size()]);
- String[] cmd = new String[cmdLen - 1 + fileNames.length];
- int index = 0;
- cmd[index++] = userdefine.getCmd();
-
- Iterator iter = argsWithoutSpace.iterator();
- while (iter.hasNext()) {
- cmd[index++] = project.replaceProperties((String) iter.next());
- }
-
- iter = endargsWithoutSpace.iterator();
- while (iter.hasNext()) {
- cmd[index++] = project.replaceProperties((String) iter.next());
- }
-
- //
- // Add outputFileFlag and output file to cmd
- //
- if (outputDelimiter != null && userdefine.getOutputFile() != null
- && outputDelimiter.length() > 0) {
- if (outputDelimiter.trim().equalsIgnoreCase("-cr")) {
- cmd[index++] = outputDelimiter;
- cmd[index++] = userdefine.getOutputFile();
- } else {
- cmd[index++] = outputDelimiter + userdefine.getOutputFile();
- }
- }
-
- iter = includePath.iterator();
- while (iter.hasNext()) {
- cmd[index++] = (String) iter.next();
- }
-
- if (libSet != null && libSet.length > 0) {
- if (isGccCommand) {
- cmd[index++] = "-(";
- }
- for (int k = 0; k < libSet.length; k++) {
- cmd[index++] = libSet[k];
- }
- if (isGccCommand) {
- cmd[index++] = "-)";
- }
- }
- for (int j = 0; j < fileNames.length; j++) {
- cmd[index++] = fileNames[j];
- }
-
-// StringBuffer logLine = new StringBuffer();
-// for(int i = 0; i < cmd.length; i++) {
-// logLine.append(cmd[i] + " ");
-// }
-// project.log(logLine.toString(), Project.MSG_VERBOSE);
-
- Environment newEnv = new Environment();
-
- //
- // Prepare for environment variable PATH
- //
- if (userdefine.getDpath() != null && userdefine.getDpath().trim().length() != 0) {
- String pathName = getPathName("PATH");
- String existPath = System.getenv(pathName);
-
- Variable var = new Variable();
- var.setKey(pathName);
- var.setPath(new Path(project, userdefine.getDpath() + ";" + existPath));
- newEnv.addVariable(var);
- }
-
- //
- // Prepare for environment variable LIB
- //
- if (userdefine.getLibpath() != null && userdefine.getLibpath().trim().length() != 0) {
- String pathName = getPathName("LIB");
- String existPath = System.getenv(pathName);
- Variable var = new Variable();
- var.setKey(pathName);
- if (existPath == null) {
- var.setPath(new Path(project, userdefine.getLibpath()));
- } else {
- var.setPath(new Path(project, userdefine.getLibpath() + ";" + existPath));
- }
- newEnv.addVariable(var);
- }
-
- //
- // Prepare for environment variable INCLUDE
- //
- if (userdefine.getInclude() != null && userdefine.getInclude().trim().length() != 0) {
- String pathName = getPathName("INCLUDE");
- String existPath = System.getenv(pathName);
- Variable var = new Variable();
- var.setKey(pathName);
- if (existPath == null) {
- var.setPath(new Path(project, userdefine.getInclude()));
- } else {
- var.setPath(new Path(project, userdefine.getInclude() + ";" + existPath));
- }
- newEnv.addVariable(var);
- }
-
- int retval = runCommand(cctask, workdir, cmd, newEnv);
-
- if (retval != 0) {
- throw new BuildException(userdefine.getCmd()
- + " failed with return code " + retval, cctask
- .getLocation());
- }
- }
-
- private String getPathName(String variableName) {
- Map allEnv = System.getenv();
- Iterator iter = allEnv.keySet().iterator();
- while (iter.hasNext()) {
- String key = (String)iter.next();
- if(key.equalsIgnoreCase(variableName)) {
- return key;
- }
- }
- return variableName;
- }
-
- protected int runCommand(CCTask task, File workingDir, String[] cmdline, Environment env)
- throws BuildException {
- //
- // Write command to File
- //
- return CUtil.runCommand(task, workingDir, cmdline, false, env);
-
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java deleted file mode 100644 index 96d274ad9a..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineArgument.java +++ /dev/null @@ -1,34 +0,0 @@ -/*
- *
- * Copyright 2002-2006 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.userdefine;
-
-import net.sf.antcontrib.cpptasks.types.CommandLineArgument;
-
-/**
- * Collect Arguments.
- *
- */
-public class UserDefineArgument extends CommandLineArgument {
-
- public UserDefineArgument() {
- }
-
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java deleted file mode 100644 index 47431e84a0..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineCompiler.java +++ /dev/null @@ -1,45 +0,0 @@ -/*
- *
- * Copyright 2002-2006 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.userdefine;
-
-import net.sf.antcontrib.cpptasks.CCTask;
-
-/**
- * Adapter for the User-Defined Compiler
- */
-public class UserDefineCompiler extends CommandLineUserDefine {
-
- public UserDefineCompiler (CCTask cctask, UserDefineDef userdefineDef) {
- String cmdType = userdefineDef.getType();
- String toolchainFamily = userdefineDef.getFamily();
-
- if (userdefineDef.getIncludePathDelimiter() == null) {
- includePathDelimiter = UserDefineMapping.getIncludePathDelimiter(
- toolchainFamily, cmdType);
- } else {
- includePathDelimiter = userdefineDef.getIncludePathDelimiter();
- }
-
- if (userdefineDef.getOutputDelimiter() == null) {
- outputDelimiter = UserDefineMapping.getOutputFileFlag(
- toolchainFamily, cmdType);
- } else {
- outputDelimiter = userdefineDef.getOutputDelimiter();
- }
-
- }
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java deleted file mode 100644 index c19c98636e..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineDef.java +++ /dev/null @@ -1,333 +0,0 @@ -/*
- *
- * Copyright 2002-2006 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.userdefine;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.Vector;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-
-import net.sf.antcontrib.cpptasks.ProcessorDef;
-import net.sf.antcontrib.cpptasks.types.ConditionalPath;
-import net.sf.antcontrib.cpptasks.types.IncludePath;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-
-/**
- * A userdefinedef definition. userdefine elements may be placed either as
- * children of a cc element or the project element. A userdefine element with an
- * id attribute may be referenced by userdefine elements with refid or extends
- * attributes.
- *
- */
-public class UserDefineDef extends ProcessorDef {
-
- public UserDefineDef () {
- }
-
- private String type = "CC";
-
- private String family = "MSFT";
-
- private String cmd;
-
- private String includePathDelimiter;
-
- private String outputDelimiter;
-
- private File workdir;
-
- private Vector includePaths = new Vector();
-
- private String outputFile;
-
- private Vector allLibraries = new Vector();
-
- private String dpath = null;
-
- private String libpath = null;
-
- private String include = null;
-
- public void addLibset(LibrarySet libset) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- if (libset == null) {
- throw new NullPointerException("libset");
- }
-
- allLibraries.add(libset);
- }
-
- public void execute() throws org.apache.tools.ant.BuildException {
- throw new org.apache.tools.ant.BuildException(
- "Not an actual task, but looks like one for documentation purposes");
- }
-
- public void addConfiguredArgument(UserDefineArgument arg) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- addConfiguredProcessorArg(arg);
- }
-
- /**
- * Creates an include path.
- */
- public IncludePath createIncludePath() {
- Project p = getProject();
- if (isReference()) {
- throw noChildrenAllowed();
- }
- IncludePath path = new IncludePath(p);
- includePaths.addElement(path);
- return path;
- }
-
- /**
- * Add a <includepath> if specify the file attribute
- *
- * @param activePath
- * Active Path Vector
- * @param file
- * File with multiple path
- * @throws BuildException
- * if the specify file not exist
- */
- protected void loadFile(Vector activePath, File file) throws BuildException {
- FileReader fileReader;
- BufferedReader in;
- String str;
- if (!file.exists()) {
- throw new BuildException("The file " + file + " is not existed");
- }
- try {
- fileReader = new FileReader(file);
- in = new BufferedReader(fileReader);
- while ((str = in.readLine()) != null) {
- if (str.trim().endsWith("")) {
- continue;
- }
- str = getProject().replaceProperties(str);
- activePath.addElement(str.trim());
- }
- } catch (Exception e) {
- throw new BuildException(e.getMessage());
- }
- }
-
- /**
- * Returns the specific include path.
- *
- * @return All active include paths
- */
- public String[] getActiveIncludePaths() {
- if (isReference()) {
- return ((UserDefineDef) getCheckedRef(UserDefineDef.class,
- "UserDefineDef")).getActiveIncludePaths();
- }
- return getActivePaths(includePaths);
- }
-
- private String[] getActivePaths(Vector paths) {
- Project p = getProject();
- Vector activePaths = new Vector(paths.size());
- int length = paths.size();
- for (int i = 0; i < length; i++) {
- ConditionalPath path = (ConditionalPath) paths.elementAt(i);
- if (path.isActive(p)) {
- if (path.getFile() == null) {
- String[] pathEntries = path.list();
- for (int j = 0; j < pathEntries.length; j++) {
- activePaths.addElement(pathEntries[j]);
- }
- } else {
- loadFile(activePaths, path.getFile());
- }
- }
- }
- String[] pathNames = new String[activePaths.size()];
- activePaths.copyInto(pathNames);
- return pathNames;
- }
-
- /**
- * Get include path delimiter.
- *
- * @return Include Path Delimiter
- */
- public String getIncludePathDelimiter() {
- if (isReference()) {
- return ((UserDefineDef) getCheckedRef(UserDefineDef.class,
- "UserDefineDef")).getIncludePathDelimiter();
- }
- return includePathDelimiter;
- }
-
- /**
- * Set include path delimiter.
- *
- * @param includePathDelimiter
- * include path delimiter
- */
- public void setIncludePathDelimiter(String includePathDelimiter) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.includePathDelimiter = includePathDelimiter;
- }
-
- /**
- * Get type.
- *
- * @return type
- */
- public String getType() {
- if (isReference()) {
- return ((UserDefineDef) getCheckedRef(UserDefineDef.class,
- "UserDefineDef")).getType();
- }
- return type;
- }
-
- /**
- * Set type.
- *
- * @param type
- * Type
- */
- public void setType(String type) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.type = type;
- }
-
- public String getCmd() {
- return cmd;
- }
-
- public void setCmd(String cmd) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- if (cmd == null || cmd.trim().length() == 0) {
- throw new BuildException("cmd attribute is empty!");
- }
- File cmdProgram = new File(cmd);
- if (cmdProgram.isDirectory()) {
- throw new BuildException(cmd + " is not valid or executable!");
- }
- this.cmd = cmd;
- }
-
- public String getFamily() {
- return family;
- }
-
- public void setFamily(String family) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.family = family;
- }
-
- public String getOutputFile() {
- return outputFile;
- }
-
- public void setOutputFile(String outputFile) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.outputFile = outputFile;
- }
-
- public File getWorkdir() {
- return workdir;
- }
-
- public void setWorkdir(File workdir) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.workdir = workdir;
- }
-
- public String[] getLibset() {
- Set libs = new LinkedHashSet();
- Iterator iter = allLibraries.iterator();
- while (iter.hasNext()) {
- LibrarySet librarySet = (LibrarySet) iter.next();
- File basedir = librarySet.getDir(getProject());
- String[] libStrArray = librarySet.getLibs();
- for (int i = 0; i < libStrArray.length; i++) {
- if (basedir != null) {
- File libFile = new File(libStrArray[i]);
- if (libFile.isAbsolute()) {
- libs.add(libFile.getPath());
- } else {
- libs.add(basedir.getPath() + File.separatorChar
- + libFile.getPath());
- }
- } else {
- libs.add(libStrArray[i]);
- }
- }
- }
- return (String[]) libs.toArray(new String[libs.size()]);
- }
-
- public String getOutputDelimiter() {
- return outputDelimiter;
- }
-
- public void setOutputDelimiter(String outputDelimiter) {
- this.outputDelimiter = outputDelimiter;
- }
-
- public String getDpath() {
- return dpath;
- }
-
- public void setDpath(String dpath) {
- this.dpath = dpath;
- }
-
- public String getLibpath() {
- return libpath;
- }
-
- public void setLibpath(String libpath) {
- this.libpath = libpath;
- }
-
- public String getInclude() {
- return include;
- }
-
- public void setInclude(String include) {
- this.include = include;
- }
-
-}
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java deleted file mode 100644 index 491cadd7f5..0000000000 --- a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/userdefine/UserDefineMapping.java +++ /dev/null @@ -1,87 +0,0 @@ -/*
- *
- * Copyright 2001-2004 The Ant-Contrib project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package net.sf.antcontrib.cpptasks.userdefine;
-
-/**
- * Relationship between {family, command type} and flags
- *
- */
-public class UserDefineMapping {
-
- /**
- * Mapping info: include path delimiter <--> family (vendor) + command type
- */
- public static final String[][] includePathFlag = { { "MSFT_CC", "/I" },
- { "GCC_CC", "-I" }, { "INTEL_CC", "/I" },
- { "WINDDK_CC", "/I" }, { "MSFT_ASM", "/I" },
- { "GCC_ASM", "-I" }, { "WINDDK_CC", "/I" },
- { "MSFT_PP", "/I" }, { "GCC_PP", "-I" },
- { "WINDDK_PP", "/I" } };
-
- /**
- * Mapping info: output file flag <--> family (vendor) + command type
- */
- public static final String[][] outputFileFlag = { { "MSFT_CC", "/Fo" },
- { "GCC_CC", "-o" }, { "INTEL_CC", "/Fo" },
- { "WINDDK_CC", "/Fo" }, { "MSFT_SLINK", "/OUT:" },
- { "GCC_SLINK", "-cr" }, { "INTEL_SLINK", "/OUT:" },
- { "WINDDK_SLINK", "/OUT:" }, { "MSFT_DLINK", "/OUT:" },
- { "GCC_DLINK", "-o" }, { "INTEL_DLINK", "/OUT:" },
- { "WINDDK_DLINK", "/OUT:" }, { "MSFT_ASM", "/Fo" },
- { "GCC_ASM", "-o" }, { "WINDDK_ASM", "/Fo" },
- { "WINDDK_IPF_ASM", "-o" } };
-
- /**
- * Get include delimiter with vendow and command type.
- *
- * @param vendor
- * Vendor
- * @param commandType
- * Command Type
- * @return include path delimiter
- */
- public static String getIncludePathDelimiter(String vendor,
- String commandType) {
- String key = vendor + "_" + commandType;
- for (int i = 0; i < includePathFlag.length; i++) {
- if (includePathFlag[i][0].equalsIgnoreCase(key)) {
- return includePathFlag[i][1];
- }
- }
- return "/I";
- }
-
- /**
- * Get Output Flag with vendor and command type.
- *
- * @param vendor
- * Vendor
- * @param commandType
- * Command Type
- * @return Output File Flag
- */
- public static String getOutputFileFlag(String vendor, String commandType) {
- String key = vendor + "_" + commandType;
- for (int i = 0; i < outputFileFlag.length; i++) {
- if (outputFileFlag[i][0].equalsIgnoreCase(key)) {
- return outputFileFlag[i][1];
- }
- }
- return "/Fo";
- }
-
-}
\ No newline at end of file |