697 lines
25 KiB
Plaintext
697 lines
25 KiB
Plaintext
|
Index: src/net/sf/antcontrib/cpptasks/CUtil.java
|
||
|
===================================================================
|
||
|
RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/CUtil.java,v
|
||
|
retrieving revision 1.28
|
||
|
diff -u -r1.28 CUtil.java
|
||
|
--- src/net/sf/antcontrib/cpptasks/CUtil.java 17 Mar 2006 16:38:12 -0000 1.28
|
||
|
+++ src/net/sf/antcontrib/cpptasks/CUtil.java 29 Apr 2006 02:35:28 -0000
|
||
|
@@ -438,19 +438,19 @@
|
||
|
StringBuffer buf = new StringBuffer (attrValue);
|
||
|
int quotePos;
|
||
|
|
||
|
- for (quotePos = -1; (quotePos = buf.indexOf("\"", quotePos + 1)) >= 0;) {
|
||
|
+ for (quotePos = -1; (quotePos = buf.toString().indexOf("\"", quotePos + 1)) >= 0;) {
|
||
|
buf.deleteCharAt(quotePos);
|
||
|
buf.insert (quotePos, """);
|
||
|
quotePos += 5;
|
||
|
}
|
||
|
|
||
|
- for (quotePos = -1; (quotePos = buf.indexOf("<", quotePos + 1)) >= 0;) {
|
||
|
+ for (quotePos = -1; (quotePos = buf.toString().indexOf("<", quotePos + 1)) >= 0;) {
|
||
|
buf.deleteCharAt(quotePos);
|
||
|
buf.insert (quotePos, "<");
|
||
|
quotePos += 3;
|
||
|
}
|
||
|
|
||
|
- for (quotePos = -1; (quotePos = buf.indexOf(">", quotePos + 1)) >= 0;) {
|
||
|
+ for (quotePos = -1; (quotePos = buf.toString().indexOf(">", quotePos + 1)) >= 0;) {
|
||
|
buf.deleteCharAt(quotePos);
|
||
|
buf.insert (quotePos, ">");
|
||
|
quotePos += 3;
|
||
|
Index: src/net/sf/antcontrib/cpptasks/CompilerEnum.java
|
||
|
===================================================================
|
||
|
RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/CompilerEnum.java,v
|
||
|
retrieving revision 1.18
|
||
|
diff -u -r1.18 CompilerEnum.java
|
||
|
--- src/net/sf/antcontrib/cpptasks/CompilerEnum.java 8 Jul 2004 22:30:53 -0000 1.18
|
||
|
+++ src/net/sf/antcontrib/cpptasks/CompilerEnum.java 29 Apr 2006 02:35:28 -0000
|
||
|
@@ -25,7 +25,9 @@
|
||
|
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.hp.HPCompiler;
|
||
|
import net.sf.antcontrib.cpptasks.ibm.VisualAgeCCompiler;
|
||
|
+import net.sf.antcontrib.cpptasks.ibm.XlcCompiler;
|
||
|
import net.sf.antcontrib.cpptasks.intel.IntelLinux32CCompiler;
|
||
|
import net.sf.antcontrib.cpptasks.intel.IntelLinux64CCompiler;
|
||
|
import net.sf.antcontrib.cpptasks.intel.IntelWin32CCompiler;
|
||
|
@@ -205,6 +207,8 @@
|
||
|
new ProcessorEnumValue("armcpp", ADSCCompiler.getArmCpp()),
|
||
|
new ProcessorEnumValue("tcc", ADSCCompiler.getThumbCC()),
|
||
|
new ProcessorEnumValue("tcpp", ADSCCompiler.getThumbCpp()),
|
||
|
+ new ProcessorEnumValue("hp", HPCompiler.getInstance()),
|
||
|
+ new ProcessorEnumValue("xlc_r", XlcCompiler.getInstance()),
|
||
|
// GCC Cross Compilers
|
||
|
new ProcessorEnumValue(
|
||
|
"sparc-sun-solaris2-gcc",
|
||
|
Index: src/net/sf/antcontrib/cpptasks/LinkerEnum.java
|
||
|
===================================================================
|
||
|
RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/LinkerEnum.java,v
|
||
|
retrieving revision 1.16
|
||
|
diff -u -r1.16 LinkerEnum.java
|
||
|
--- src/net/sf/antcontrib/cpptasks/LinkerEnum.java 8 Jul 2004 22:30:53 -0000 1.16
|
||
|
+++ src/net/sf/antcontrib/cpptasks/LinkerEnum.java 29 Apr 2006 02:35:28 -0000
|
||
|
@@ -25,7 +25,9 @@
|
||
|
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.hp.HPLinker;
|
||
|
import net.sf.antcontrib.cpptasks.ibm.VisualAgeLinker;
|
||
|
+import net.sf.antcontrib.cpptasks.ibm.XlcLinker;
|
||
|
import net.sf.antcontrib.cpptasks.intel.IntelLinux32Linker;
|
||
|
import net.sf.antcontrib.cpptasks.intel.IntelLinux64Linker;
|
||
|
import net.sf.antcontrib.cpptasks.intel.IntelWin32Linker;
|
||
|
@@ -72,6 +74,8 @@
|
||
|
new ProcessorEnumValue("armcpp", ADSLinker.getInstance()),
|
||
|
new ProcessorEnumValue("tcc", ADSLinker.getInstance()),
|
||
|
new ProcessorEnumValue("tcpp", ADSLinker.getInstance()),
|
||
|
+ new ProcessorEnumValue("hp", HPLinker.getInstance()),
|
||
|
+ new ProcessorEnumValue("xlc_r", XlcLinker.getInstance()),
|
||
|
// gcc cross compilers
|
||
|
new ProcessorEnumValue(
|
||
|
"sparc-sun-solaris2-gcc",
|
||
|
Index: src/net/sf/antcontrib/cpptasks/SubsystemEnum.java
|
||
|
===================================================================
|
||
|
RCS file: /cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/SubsystemEnum.java,v
|
||
|
retrieving revision 1.7
|
||
|
diff -u -r1.7 SubsystemEnum.java
|
||
|
--- src/net/sf/antcontrib/cpptasks/SubsystemEnum.java 28 Feb 2004 20:04:02 -0000 1.7
|
||
|
+++ src/net/sf/antcontrib/cpptasks/SubsystemEnum.java 29 Apr 2006 02:35:28 -0000
|
||
|
@@ -29,6 +29,6 @@
|
||
|
setValue("gui");
|
||
|
}
|
||
|
public String[] getValues() {
|
||
|
- return (String[]) values.clone();
|
||
|
+ return values;
|
||
|
}
|
||
|
}
|
||
|
Index: src/net/sf/antcontrib/cpptasks/gcc/GccLinker.java
|
||
|
===================================================================
|
||
|
RCS file:
|
||
|
/cvsroot/ant-contrib/cpptasks/src/net/sf/antcontrib/cpptasks/gcc/GccLinker.java,v
|
||
|
retrieving revision 1.32
|
||
|
diff -u -r1.32 GccLinker.java
|
||
|
--- src/net/sf/antcontrib/cpptasks/gcc/GccLinker.java 28 Feb 2004
|
||
|
20:01:15 -0000 1.32
|
||
|
+++ src/net/sf/antcontrib/cpptasks/gcc/GccLinker.java 29 Apr 2006
|
||
|
17:27:50 -0000
|
||
|
@@ -35,7 +35,7 @@
|
||
|
private static String[] linkerOptions = new String[]{"-bundle",
|
||
|
"-dynamiclib", "-nostartfiles", "-nostdlib", "-prebind",
|
||
|
"-s",
|
||
|
"-static", "-shared", "-symbolic", "-Xlinker",
|
||
|
- "--export-all-symbols", "-static-libgcc",};
|
||
|
+ "--export-all-symbols", "-static-libgcc", "-arch"};
|
||
|
private static final GccLinker dllLinker = new GccLinker("gcc",
|
||
|
objFiles,
|
||
|
discardFiles, "lib", ".so", false, new GccLinker("gcc",
|
||
|
objFiles,
|
||
|
discardFiles, "lib", ".so", true, null));
|
||
|
|
||
|
--- /dev/null 2006-04-28 19:36:02.000000000 -0700
|
||
|
+++ src/net/sf/antcontrib/cpptasks/hp/HPCompiler.java 2006-04-28 17:08:22.000000000 -0700
|
||
|
@@ -0,0 +1,161 @@
|
||
|
+/*
|
||
|
+ * The Apache Software License, Version 1.1
|
||
|
+ *
|
||
|
+ * Copyright (c) 2001 The Ant-Contrib project. All rights
|
||
|
+ * reserved.
|
||
|
+ *
|
||
|
+ * Redistribution and use in source and binary forms, with or without
|
||
|
+ * modification, are permitted provided that the following conditions
|
||
|
+ * are met:
|
||
|
+ *
|
||
|
+ * 1. Redistributions of source code must retain the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer.
|
||
|
+ *
|
||
|
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer in
|
||
|
+ * the documentation and/or other materials provided with the
|
||
|
+ * distribution.
|
||
|
+ *
|
||
|
+ * 3. The end-user documentation included with the redistribution, if
|
||
|
+ * any, must include the following acknowlegement:
|
||
|
+ * "This product includes software developed by the
|
||
|
+ * Apache Software Foundation (http://www.apache.org/)."
|
||
|
+ * Alternately, this acknowlegement may appear in the software itself,
|
||
|
+ * if and wherever such third-party acknowlegements normally appear.
|
||
|
+ *
|
||
|
+ * 4. The names "The Jakarta Project", "Ant", and "Apache Software
|
||
|
+ * Foundation" must not be used to endorse or promote products derived
|
||
|
+ * from this software without prior written permission. For written
|
||
|
+ * permission, please contact apache@apache.org.
|
||
|
+ *
|
||
|
+ * 5. Products derived from this software may not be called "Apache"
|
||
|
+ * nor may "Apache" appear in their names without prior written
|
||
|
+ * permission of the Apache Group.
|
||
|
+ *
|
||
|
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
|
||
|
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||
|
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
|
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||
|
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||
|
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
+ * SUCH DAMAGE.
|
||
|
+ * ====================================================================
|
||
|
+ *
|
||
|
+ * This software consists of voluntary contributions made by many
|
||
|
+ * individuals on behalf of the Apache Software Foundation. For more
|
||
|
+ * information on the Apache Software Foundation, please see
|
||
|
+ * <http://www.apache.org/>.
|
||
|
+ */
|
||
|
+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 org.apache.tools.ant.types.Environment;
|
||
|
+
|
||
|
+/**
|
||
|
+ * Adapter for the HP compiler
|
||
|
+ *
|
||
|
+ * @author Curt Arnold
|
||
|
+ */
|
||
|
+public final class HPCompiler extends GccCompatibleCCompiler {
|
||
|
+
|
||
|
+ private String identifier;
|
||
|
+ private File[] includePath;
|
||
|
+ private static final HPCompiler instance =
|
||
|
+ new HPCompiler("cc", false, null);
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Private constructor. Use GccCCompiler.getInstance() to get
|
||
|
+ * singleton instance of this class.
|
||
|
+ */
|
||
|
+ private HPCompiler(
|
||
|
+ String command,
|
||
|
+ boolean newEnvironment,
|
||
|
+ Environment env) {
|
||
|
+ super(command, "-help", false, null, newEnvironment, env);
|
||
|
+ }
|
||
|
+
|
||
|
+ public int getMaximumCommandLength() {
|
||
|
+ return Integer.MAX_VALUE;
|
||
|
+ }
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets singleton instance of this class
|
||
|
+ */
|
||
|
+ public static HPCompiler getInstance() {
|
||
|
+ return instance;
|
||
|
+ }
|
||
|
+
|
||
|
+ 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 void addImpliedArgs(
|
||
|
+ Vector args,
|
||
|
+ boolean debug,
|
||
|
+ boolean multithreaded,
|
||
|
+ boolean exceptions,
|
||
|
+ LinkType linkType) {
|
||
|
+ 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 Linker getLinker(LinkType linkType) {
|
||
|
+ return HPLinker.getInstance().getLinker(linkType);
|
||
|
+ }
|
||
|
+}
|
||
|
--- /dev/null 2006-04-28 19:36:02.000000000 -0700
|
||
|
+++ src/net/sf/antcontrib/cpptasks/hp/HPLinker.java 2006-04-28 17:08:22.000000000 -0700
|
||
|
@@ -0,0 +1,153 @@
|
||
|
+/*
|
||
|
+ * The Apache Software License, Version 1.1
|
||
|
+ *
|
||
|
+ * Copyright (c) 2001 The Ant-Contrib project. All rights
|
||
|
+ * reserved.
|
||
|
+ *
|
||
|
+ * Redistribution and use in source and binary forms, with or without
|
||
|
+ * modification, are permitted provided that the following conditions
|
||
|
+ * are met:
|
||
|
+ *
|
||
|
+ * 1. Redistributions of source code must retain the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer.
|
||
|
+ *
|
||
|
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer in
|
||
|
+ * the documentation and/or other materials provided with the
|
||
|
+ * distribution.
|
||
|
+ *
|
||
|
+ * 3. The end-user documentation included with the redistribution, if
|
||
|
+ * any, must include the following acknowlegement:
|
||
|
+ * "This product includes software developed by the
|
||
|
+ * Apache Software Foundation (http://www.apache.org/)."
|
||
|
+ * Alternately, this acknowlegement may appear in the software itself,
|
||
|
+ * if and wherever such third-party acknowlegements normally appear.
|
||
|
+ *
|
||
|
+ * 4. The names "The Jakarta Project", "Ant", and "Apache Software
|
||
|
+ * Foundation" must not be used to endorse or promote products derived
|
||
|
+ * from this software without prior written permission. For written
|
||
|
+ * permission, please contact apache@apache.org.
|
||
|
+ *
|
||
|
+ * 5. Products derived from this software may not be called "Apache"
|
||
|
+ * nor may "Apache" appear in their names without prior written
|
||
|
+ * permission of the Apache Group.
|
||
|
+ *
|
||
|
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
|
||
|
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||
|
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
|
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||
|
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||
|
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
+ * SUCH DAMAGE.
|
||
|
+ * ====================================================================
|
||
|
+ *
|
||
|
+ * This software consists of voluntary contributions made by many
|
||
|
+ * individuals on behalf of the Apache Software Foundation. For more
|
||
|
+ * information on the Apache Software Foundation, please see
|
||
|
+ * <http://www.apache.org/>.
|
||
|
+ */
|
||
|
+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 HP linker
|
||
|
+ *
|
||
|
+ * @author Curt Arnold
|
||
|
+ */
|
||
|
+public final class HPLinker extends AbstractLdLinker
|
||
|
+{
|
||
|
+ private static final String[] objFiles = new String[]
|
||
|
+ { ".o", ".a", ".lib", ".dll", ".so", ".sl" };
|
||
|
+ private static final String[] discardFiles = new String[0];
|
||
|
+
|
||
|
+ private static final HPLinker instance =
|
||
|
+ new HPLinker("ld", objFiles, discardFiles, "", "");
|
||
|
+ private static final HPLinker dllLinker =
|
||
|
+ new HPLinker("ld", objFiles, discardFiles, "lib", ".sl");
|
||
|
+ private static final HPLinker arLinker =
|
||
|
+ new HPLinker("ld", objFiles, discardFiles, "", ".a");
|
||
|
+
|
||
|
+ private File[] libDirs;
|
||
|
+
|
||
|
+ private HPLinker(String command, String[] extensions,
|
||
|
+ String[] ignoredExtensions, String outputPrefix,
|
||
|
+ String outputSuffix) {
|
||
|
+ super(command, "-help", extensions, ignoredExtensions,
|
||
|
+ outputPrefix, outputSuffix,false,null);
|
||
|
+ }
|
||
|
+
|
||
|
+ public static HPLinker getInstance() {
|
||
|
+ return instance;
|
||
|
+ }
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Returns library path.
|
||
|
+ *
|
||
|
+ */
|
||
|
+ public File[] getLibraryPath() {
|
||
|
+ if(libDirs == null) {
|
||
|
+ File CCloc = CUtil.getExecutableLocation("ld");
|
||
|
+ 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 void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
|
||
|
+/* if(linkType.isStaticRuntime()) {
|
||
|
+ args.addElement("-static");
|
||
|
+ }
|
||
|
+*/
|
||
|
+ if(linkType.isSharedLibrary()) {
|
||
|
+ args.addElement("-b");
|
||
|
+ }
|
||
|
+/*
|
||
|
+ if (linkType.isStaticLibrary()) {
|
||
|
+ args.addElement("-Wl,-noshared");
|
||
|
+ }
|
||
|
+*/
|
||
|
+ }
|
||
|
+
|
||
|
+
|
||
|
+ public Linker getLinker(LinkType type) {
|
||
|
+ if(type.isStaticLibrary()) {
|
||
|
+ return arLinker;
|
||
|
+ }
|
||
|
+ if(type.isSharedLibrary()) {
|
||
|
+ return dllLinker;
|
||
|
+ }
|
||
|
+ return instance;
|
||
|
+ }
|
||
|
+
|
||
|
+ public void addIncremental(boolean incremental, Vector args) {
|
||
|
+ /*
|
||
|
+ if (incremental) {
|
||
|
+ args.addElement("-xidlon");
|
||
|
+ } else {
|
||
|
+ args.addElement("-xidloff");
|
||
|
+ }
|
||
|
+ */
|
||
|
+ }
|
||
|
+}
|
||
|
--- /dev/null 2006-04-28 19:36:02.000000000 -0700
|
||
|
+++ src/net/sf/antcontrib/cpptasks/ibm/XlcCompiler.java 2006-04-28 17:08:22.000000000 -0700
|
||
|
@@ -0,0 +1,138 @@
|
||
|
+/*
|
||
|
+ * The Apache Software License, Version 1.1
|
||
|
+ *
|
||
|
+ * Copyright (c) 2001 The Ant-Contrib project. All rights
|
||
|
+ * reserved.
|
||
|
+ *
|
||
|
+ * Redistribution and use in source and binary forms, with or without
|
||
|
+ * modification, are permitted provided that the following conditions
|
||
|
+ * are met:
|
||
|
+ *
|
||
|
+ * 1. Redistributions of source code must retain the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer.
|
||
|
+ *
|
||
|
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer in
|
||
|
+ * the documentation and/or other materials provided with the
|
||
|
+ * distribution.
|
||
|
+ *
|
||
|
+ * 3. The end-user documentation included with the redistribution, if
|
||
|
+ * any, must include the following acknowlegement:
|
||
|
+ * "This product includes software developed by the
|
||
|
+ * Ant-Contrib project (http://sourceforge.net/projects/ant-contrib)."
|
||
|
+ * Alternately, this acknowlegement may appear in the software itself,
|
||
|
+ * if and wherever such third-party acknowlegements normally appear.
|
||
|
+ *
|
||
|
+ * 4. The names "Ant-Contrib"
|
||
|
+ * must not be used to endorse or promote products derived
|
||
|
+ * from this software without prior written permission. For written
|
||
|
+ * permission, please contact apache@apache.org.
|
||
|
+ *
|
||
|
+ * 5. Products derived from this software may not be called "Ant-Contrib"
|
||
|
+ * nor may "Ant-Contrib" appear in their names without prior written
|
||
|
+ * permission of the Ant-Contrib project.
|
||
|
+ *
|
||
|
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
+ * DISCLAIMED. IN NO EVENT SHALL THE ANT-CONTRIB PROJECT OR
|
||
|
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||
|
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
|
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||
|
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||
|
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
+ * SUCH DAMAGE.
|
||
|
+ * ====================================================================
|
||
|
+ */
|
||
|
+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 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 XlcCompiler extends GccCompatibleCCompiler {
|
||
|
+ private String identifier;
|
||
|
+ private File[] includePath;
|
||
|
+ private static final XlcCompiler instance =
|
||
|
+ new XlcCompiler("xlc_r", false, null);
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Private constructor. Use getInstance() to get
|
||
|
+ * singleton instance of this class.
|
||
|
+ */
|
||
|
+ private XlcCompiler(String command, boolean newEnvironment, Environment env) {
|
||
|
+ super(command, "-help", false, null, newEnvironment, env);
|
||
|
+ }
|
||
|
+
|
||
|
+ public int getMaximumCommandLength() {
|
||
|
+ return Integer.MAX_VALUE;
|
||
|
+ }
|
||
|
+
|
||
|
+ /**
|
||
|
+ * Gets singleton instance of this class
|
||
|
+ */
|
||
|
+ public static XlcCompiler getInstance() {
|
||
|
+ return instance;
|
||
|
+ }
|
||
|
+
|
||
|
+ public void addImpliedArgs(
|
||
|
+ Vector args,
|
||
|
+ boolean debug,
|
||
|
+ boolean multithreaded,
|
||
|
+ boolean exceptions,
|
||
|
+ LinkType linkType) {
|
||
|
+ args.addElement("-c");
|
||
|
+ if (debug) {
|
||
|
+ args.addElement("-g");
|
||
|
+ }
|
||
|
+ if (linkType.isSharedLibrary()) {
|
||
|
+ args.addElement("-fpic");
|
||
|
+ args.addElement("-qmkshrobj");
|
||
|
+
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
+ 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);
|
||
|
+ }
|
||
|
+}
|
||
|
--- /dev/null 2006-04-28 19:36:02.000000000 -0700
|
||
|
+++ src/net/sf/antcontrib/cpptasks/ibm/XlcLinker.java 2006-04-28 17:08:22.000000000 -0700
|
||
|
@@ -0,0 +1,112 @@
|
||
|
+/*
|
||
|
+ * The Apache Software License, Version 1.1
|
||
|
+ *
|
||
|
+ * Copyright (c) 2001 The Ant-Contrib project. All rights
|
||
|
+ * reserved.
|
||
|
+ *
|
||
|
+ * Redistribution and use in source and binary forms, with or without
|
||
|
+ * modification, are permitted provided that the following conditions
|
||
|
+ * are met:
|
||
|
+ *
|
||
|
+ * 1. Redistributions of source code must retain the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer.
|
||
|
+ *
|
||
|
+ * 2. Redistributions in binary form must reproduce the above copyright
|
||
|
+ * notice, this list of conditions and the following disclaimer in
|
||
|
+ * the documentation and/or other materials provided with the
|
||
|
+ * distribution.
|
||
|
+ *
|
||
|
+ * 3. The end-user documentation included with the redistribution, if
|
||
|
+ * any, must include the following acknowlegement:
|
||
|
+ * "This product includes software developed by the
|
||
|
+ * Ant-Contrib project (http://sourceforge.net/projects/ant-contrib)."
|
||
|
+ * Alternately, this acknowlegement may appear in the software itself,
|
||
|
+ * if and wherever such third-party acknowlegements normally appear.
|
||
|
+ *
|
||
|
+ * 4. The names "Ant-Contrib"
|
||
|
+ * must not be used to endorse or promote products derived
|
||
|
+ * from this software without prior written permission. For written
|
||
|
+ * permission, please contact apache@apache.org.
|
||
|
+ *
|
||
|
+ * 5. Products derived from this software may not be called "Ant-Contrib"
|
||
|
+ * nor may "Ant-Contrib" appear in their names without prior written
|
||
|
+ * permission of the Ant-Contrib project.
|
||
|
+ *
|
||
|
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||
|
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
+ * DISCLAIMED. IN NO EVENT SHALL THE ANT-CONTRIB PROJECT OR
|
||
|
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
||
|
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
|
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||
|
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||
|
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||
|
+ * SUCH DAMAGE.
|
||
|
+ * ====================================================================
|
||
|
+ */
|
||
|
+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 XlcLinker extends AbstractLdLinker
|
||
|
+{
|
||
|
+ private static final String[] objFiles = new String[]
|
||
|
+ { ".o", ".a", ".lib",".dll", ".so", ".sl"};
|
||
|
+ private static final String[] discardFiles = new String[]
|
||
|
+ { };
|
||
|
+
|
||
|
+ private static final XlcLinker instance =
|
||
|
+ new XlcLinker("ld", objFiles, discardFiles, "", "");
|
||
|
+ private static final XlcLinker dllLinker =
|
||
|
+ new XlcLinker("ld", objFiles, discardFiles, "lib", ".so");
|
||
|
+
|
||
|
+ private XlcLinker(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 static XlcLinker getInstance() {
|
||
|
+ return instance;
|
||
|
+ }
|
||
|
+
|
||
|
+ public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
|
||
|
+ if(debug) {
|
||
|
+ //args.addElement("-g");
|
||
|
+ }
|
||
|
+ if(linkType.isSharedLibrary()) {
|
||
|
+ args.addElement("-bdynamic");
|
||
|
+ args.addElement("-G");
|
||
|
+ args.addElement("-bnoentry");
|
||
|
+ args.addElement("-bexpall");
|
||
|
+ args.addElement("-lc_r");
|
||
|
+ }
|
||
|
+ }
|
||
|
+
|
||
|
+
|
||
|
+ public Linker getLinker(LinkType type) {
|
||
|
+ if(type.isStaticLibrary()) {
|
||
|
+ return GccLibrarian.getInstance();
|
||
|
+ }
|
||
|
+ if(type.isSharedLibrary()) {
|
||
|
+ return dllLinker;
|
||
|
+ }
|
||
|
+ return instance;
|
||
|
+ }
|
||
|
+}
|