cpptasks patches moved to http://github.com/dougm/ant-contrib-cpptasks
This commit is contained in:
		
							parent
							
								
									60c95368e6
								
							
						
					
					
						commit
						301ce06deb
					
				
							
								
								
									
										1
									
								
								bindings/java/hyperic_jni/lib/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								bindings/java/hyperic_jni/lib/README
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
cpptasks.jar from http://github.com/dougm/ant-contrib-cpptasks
 | 
			
		||||
@ -1,22 +0,0 @@
 | 
			
		||||
 | 
			
		||||
cpptasks.pat - provides support for HP cc and AIX xlc_r
 | 
			
		||||
the classes listed below are copy-n-pastes from existing cpptasks
 | 
			
		||||
classes, simply changed program names, flags, etc.  the HP classes
 | 
			
		||||
were submitted as a patch to ant-contrib-developers on 10/09/2002,
 | 
			
		||||
to which there was no response, so have not bothered to submit the aix
 | 
			
		||||
patch.
 | 
			
		||||
SubsystemEnum patch is for the osf1 javac (aka tru64).
 | 
			
		||||
was throwing IllegalAccessError.  why clone a final String[] anyhow??
 | 
			
		||||
CUtil patch is for jdk 1.3 (StringBuffer.indexOf is 1.4+)
 | 
			
		||||
GccLinker patch adds -arch to known flags for building universal binaries
 | 
			
		||||
 | 
			
		||||
added       | derived from
 | 
			
		||||
--------------------------
 | 
			
		||||
HPCompiler  | aCCCompiler
 | 
			
		||||
HPLinker    | aCCLinker
 | 
			
		||||
XlcCompiler | VisualAgeCCompiler
 | 
			
		||||
XlcLinker   | VisualAgeLinker
 | 
			
		||||
 | 
			
		||||
cpptasks.pat applies to:
 | 
			
		||||
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/ant-contrib \
 | 
			
		||||
co -D"2006/04/28 15:00:00" cpptasks
 | 
			
		||||
@ -1,696 +0,0 @@
 | 
			
		||||
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;
 | 
			
		||||
+    }
 | 
			
		||||
+}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user