From 301ce06deb7f94dd1ad2dd346bc3d66137840dd2 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Sat, 14 Feb 2009 07:00:52 -0800 Subject: [PATCH] cpptasks patches moved to http://github.com/dougm/ant-contrib-cpptasks --- bindings/java/hyperic_jni/lib/README | 1 + bindings/java/hyperic_jni/patches/README | 22 - .../java/hyperic_jni/patches/cpptasks.pat | 696 ------------------ 3 files changed, 1 insertion(+), 718 deletions(-) create mode 100644 bindings/java/hyperic_jni/lib/README delete mode 100644 bindings/java/hyperic_jni/patches/README delete mode 100644 bindings/java/hyperic_jni/patches/cpptasks.pat diff --git a/bindings/java/hyperic_jni/lib/README b/bindings/java/hyperic_jni/lib/README new file mode 100644 index 00000000..a6a660f4 --- /dev/null +++ b/bindings/java/hyperic_jni/lib/README @@ -0,0 +1 @@ +cpptasks.jar from http://github.com/dougm/ant-contrib-cpptasks diff --git a/bindings/java/hyperic_jni/patches/README b/bindings/java/hyperic_jni/patches/README deleted file mode 100644 index aa818f87..00000000 --- a/bindings/java/hyperic_jni/patches/README +++ /dev/null @@ -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 diff --git a/bindings/java/hyperic_jni/patches/cpptasks.pat b/bindings/java/hyperic_jni/patches/cpptasks.pat deleted file mode 100644 index dfd5ed71..00000000 --- a/bindings/java/hyperic_jni/patches/cpptasks.pat +++ /dev/null @@ -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 -+ * . -+ */ -+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 -+ * . -+ */ -+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; -+ } -+}