From 254c4886d58979eebd0e352f4d16e391736f2a33 Mon Sep 17 00:00:00 2001 From: Mark Donszelmann Date: Thu, 5 Nov 2009 23:27:33 +0100 Subject: Reorganized source directories in line with cpptasks-1.0b5, for easier tracking --- .../sf/antcontrib/cpptasks/sun/C89CCompiler.java | 108 ----------------- src/net/sf/antcontrib/cpptasks/sun/C89Linker.java | 132 --------------------- .../sf/antcontrib/cpptasks/sun/C89Processor.java | 116 ------------------ .../antcontrib/cpptasks/sun/ForteCCCompiler.java | 119 ------------------- .../sf/antcontrib/cpptasks/sun/ForteCCLinker.java | 101 ---------------- .../sf/antcontrib/cpptasks/sun/ForteCCompiler.java | 98 --------------- .../antcontrib/cpptasks/sun/ForteF77Compiler.java | 98 --------------- 7 files changed, 772 deletions(-) delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/C89Linker.java delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/C89Processor.java delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/ForteCCompiler.java delete mode 100644 src/net/sf/antcontrib/cpptasks/sun/ForteF77Compiler.java (limited to 'src/net/sf/antcontrib/cpptasks/sun') diff --git a/src/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java b/src/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java deleted file mode 100644 index 4ac8ac1..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/C89CCompiler.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.AbstractCompiler; -import net.sf.antcontrib.cpptasks.compiler.CommandLineCCompiler; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.compiler.Processor; -import net.sf.antcontrib.cpptasks.OptimizationEnum; - - -import org.apache.tools.ant.types.Environment; -/** - * Adapter for the Sun C89 C++ Compiler - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class C89CCompiler extends CommandLineCCompiler { - private static final AbstractCompiler instance = new C89CCompiler(false, - null); - public static AbstractCompiler getInstance() { - return instance; - } - private C89CCompiler(boolean newEnvironment, Environment env) { - super("c89", null, new String[]{".c", ".cc", ".cpp", ".cxx", ".c++"}, - new String[]{".h", ".hpp"}, ".o", false, null, newEnvironment, - env); - } - protected void addImpliedArgs( - final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - // Specifies that only compilations and assemblies be done. - args.addElement("-c"); - /* - * if (exceptions) { args.addElement("/GX"); } - */ - if (debug) { - args.addElement("-g"); - args.addElement("-D_DEBUG"); - /* - * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MTd"); } else { args.addElement("/MDd"); - * args.addElement("/D_DLL"); } } else { args.addElement("/MLd"); } - */ - } else { - args.addElement("-DNDEBUG"); - /* - * if (multithreaded) { args.addElement("/D_MT"); if (staticLink) { - * args.addElement("/MT"); } else { args.addElement("/MD"); - * args.addElement("/D_DLL"); } } else { args.addElement("/ML"); } - */ - } - } - protected void addWarningSwitch(Vector args, int level) { - C89Processor.addWarningSwitch(args, level); - } - public Processor changeEnvironment(boolean newEnvironment, Environment env) { - if (newEnvironment || env != null) { - return new C89CCompiler(newEnvironment, env); - } - return this; - } - protected void getDefineSwitch(StringBuffer buf, String define, String value) { - C89Processor.getDefineSwitch(buf, define, value); - } - protected File[] getEnvironmentIncludePath() { - return CUtil.getPathFromEnvironment("INCLUDE", ":"); - } - protected String getIncludeDirSwitch(String includeDir) { - return C89Processor.getIncludeDirSwitch(includeDir); - } - public Linker getLinker(LinkType type) { - return C89Linker.getInstance().getLinker(type); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - /* Only compile one file at time for now */ - protected int getMaximumInputFilesPerCommand() { - return 1; - } - protected void getUndefineSwitch(StringBuffer buf, String define) { - C89Processor.getUndefineSwitch(buf, define); - } -} diff --git a/src/net/sf/antcontrib/cpptasks/sun/C89Linker.java b/src/net/sf/antcontrib/cpptasks/sun/C89Linker.java deleted file mode 100644 index 6c41c89..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/C89Linker.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.types.LibrarySet; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; -import net.sf.antcontrib.cpptasks.VersionInfo; - -/** - * Adapter for the Sun C89 Linker - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public final class C89Linker extends CommandLineLinker { - private static final C89Linker dllLinker = new C89Linker("lib", ".so"); - private static final C89Linker instance = new C89Linker("", ""); - public static C89Linker getInstance() { - return instance; - } - private String outputPrefix; - private C89Linker(String outputPrefix, String outputSuffix) { - super("ld", "/bogus", new String[]{".o", ".a", ".lib", ".x"}, - new String[]{}, outputSuffix, false, null); - this.outputPrefix = outputPrefix; - } - protected void addBase(long base, Vector args) { - } - protected void addFixed(Boolean fixed, Vector args) { - } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { - if (linkType.isSharedLibrary()) { - args.addElement("-G"); - } - } - protected void addIncremental(boolean incremental, Vector args) { - } - public String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { - super.addLibrarySets(task, libsets, preargs, midargs, endargs); - StringBuffer buf = new StringBuffer("-l"); - for (int i = 0; i < libsets.length; i++) { - LibrarySet set = libsets[i]; - File libdir = set.getDir(null); - String[] libs = set.getLibs(); - if (libdir != null) { - endargs.addElement("-L"); - endargs.addElement(libdir.getAbsolutePath()); - } - for (int j = 0; j < libs.length; j++) { - // - // reset the buffer to just "-l" - // - buf.setLength(2); - // - // add the library name - buf.append(libs[j]); - // - // add the argument to the list - endargs.addElement(buf.toString()); - } - } - return null; - } - protected void addMap(boolean map, Vector args) { - } - protected void addStack(int stack, Vector args) { - } - /* (non-Javadoc) - * @see net.sf.antcontrib.cpptasks.compiler.CommandLineLinker#addEntry(int, java.util.Vector) - */ - protected void addEntry(String entry, Vector args) { - } - - public String getCommandFileSwitch(String commandFile) { - return "@" + commandFile; - } - public File[] getLibraryPath() { - return CUtil.getPathFromEnvironment("LIB", ";"); - } - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - return C89Processor.getLibraryPatterns(libnames, libType); - } - public Linker getLinker(LinkType linkType) { - if (linkType.isSharedLibrary()) { - return dllLinker; - } - /* - * if(linkType.isStaticLibrary()) { return - * OS390Librarian.getInstance(); } - */ - return instance; - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } - public String[] getOutputFileNames(String baseName, VersionInfo versionInfo) { - String[] baseNames = super.getOutputFileNames(baseName, versionInfo); - if (outputPrefix.length() > 0) { - for(int i = 0; i < baseNames.length; i++) { - baseNames[i] = outputPrefix + baseNames[i]; - } - } - return baseNames; - } - public String[] getOutputFileSwitch(String outputFile) { - return new String[]{"-o", outputFile}; - } - public boolean isCaseSensitive() { - return C89Processor.isCaseSensitive(); - } -} diff --git a/src/net/sf/antcontrib/cpptasks/sun/C89Processor.java b/src/net/sf/antcontrib/cpptasks/sun/C89Processor.java deleted file mode 100644 index 343293a..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/C89Processor.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * - * Copyright 2002-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.util.Vector; -import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum; - -/** - * A add-in class for Sun C89 compilers and linkers - * - * @author Hiram Chirino (cojonudo14@hotmail.com) - */ -public class C89Processor { - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { - for (int i = 0; i < libnames.length; i++) { - buf.setLength(0); - buf.append(prefix); - buf.append(libnames[i]); - buf.append(extension); - patterns[offset + i] = buf.toString(); - } - return offset + libnames.length; - } - public static void addWarningSwitch(Vector args, int level) { - switch (level) { - /* - * case 0: args.addElement("/W0"); break; - * - * case 1: args.addElement("/W1"); break; - * - * case 2: break; - * - * case 3: args.addElement("/W3"); break; - * - * case 4: args.addElement("/W4"); break; - */ - } - } - public static String getCommandFileSwitch(String cmdFile) { - StringBuffer buf = new StringBuffer("@"); - if (cmdFile.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(cmdFile); - buf.append('\"'); - } else { - buf.append(cmdFile); - } - return buf.toString(); - } - public static void getDefineSwitch(StringBuffer buf, String define, - String value) { - buf.setLength(0); - buf.append("-D"); - buf.append(define); - if (value != null && value.length() > 0) { - buf.append('='); - buf.append(value); - } - } - public static String getIncludeDirSwitch(String includeDir) { - return "-I" + includeDir; - } - public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - int patternCount = libnames.length*2; - if (libType != null) { - patternCount = libnames.length; - } - String[] patterns = new String[patternCount]; - int offset = 0; - if (libType == null || "static".equals(libType.getValue())) { - offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); - } - if (libType == null || !"static".equals(libType.getValue())) { - offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns, - offset); - } - return patterns; - } - public static String[] getOutputFileSwitch(String outPath) { - StringBuffer buf = new StringBuffer("-o "); - if (outPath.indexOf(' ') >= 0) { - buf.append('\"'); - buf.append(outPath); - buf.append('\"'); - } else { - buf.append(outPath); - } - String[] retval = new String[]{buf.toString()}; - return retval; - } - public static void getUndefineSwitch(StringBuffer buf, String define) { - buf.setLength(0); - buf.append("-U"); - buf.append(define); - } - public static boolean isCaseSensitive() { - return true; - } - private C89Processor() { - } -} diff --git a/src/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java b/src/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java deleted file mode 100644 index 2c37eff..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.OptimizationEnum; -/** - * Adapter for the Sun (r) Forte (tm) C++ compiler - * - * @author Curt Arnold - */ -public final class ForteCCCompiler extends GccCompatibleCCompiler { - private static final ForteCCCompiler instance = new ForteCCCompiler("CC"); - /** - * Gets singleton instance of this class - */ - public static ForteCCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - /** - * Private constructor. Use ForteCCCompiler.getInstance() to get singleton - * instance of this class. - */ - private ForteCCCompiler(String command) { - super(command, "-V", false, null, false, null); - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - args.addElement("-c"); - if (debug) { - args.addElement("-g"); - } - if (optimization != null) { - if (optimization.isSpeed()) { - args.addElement("-xO2"); - } - } - if (rtti != null) { - if (rtti.booleanValue()) { - args.addElement("-features=rtti"); - } else { - args.addElement("-features=no%rtti"); - } - } - if (multithreaded) { - args.addElement("-mt"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-KPIC"); - } - - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 1 : - case 2 : - args.addElement("+w"); - break; - case 3 : - case 4 : - case 5 : - args.addElement("+w2"); - break; - } - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - File ccLoc = CUtil.getExecutableLocation("CC"); - if (ccLoc != null) { - File compilerIncludeDir = new File( - new File(ccLoc, "../include").getAbsolutePath()); - if (compilerIncludeDir.exists()) { - includePath = new File[2]; - includePath[0] = compilerIncludeDir; - } - } - if (includePath == null) { - includePath = new File[1]; - } - includePath[includePath.length - 1] = new File("/usr/include"); - } - return includePath; - } - public Linker getLinker(LinkType linkType) { - return ForteCCLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/src/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java b/src/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java deleted file mode 100644 index 91ec3d1..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/ForteCCLinker.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * - * Copyright 2001-2004 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.AbstractLdLinker; -/** - * Adapter for Sun (r) Forte(tm) C++ Linker - * - * @author Curt Arnold - */ -public final class ForteCCLinker extends AbstractLdLinker { - private static final String[] discardFiles = new String[]{".dll", ".so", - ".sl"}; - private static final String[] objFiles = new String[]{".o", ".a", ".lib"}; - private static final ForteCCLinker arLinker = new ForteCCLinker("CC", - objFiles, discardFiles, "lib", ".a"); - private static final ForteCCLinker dllLinker = new ForteCCLinker("CC", - objFiles, discardFiles, "lib", ".so"); - private static final ForteCCLinker instance = new ForteCCLinker("CC", - objFiles, discardFiles, "", ""); - public static ForteCCLinker getInstance() { - return instance; - } - private File[] libDirs; - private ForteCCLinker(String command, String[] extensions, - String[] ignoredExtensions, String outputPrefix, String outputSuffix) { - super(command, "-V", extensions, ignoredExtensions, outputPrefix, - outputSuffix, false, null); - } - public void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { - if (debug) { - args.addElement("-g"); - } - if (linkType.isStaticRuntime()) { -// FREEHEP changed -static - args.addElement("-staticlib=%all"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-G"); - } - if (linkType.isStaticLibrary()) { - args.addElement("-xar"); - } - } - public void addIncremental(boolean incremental, Vector args) { - /* - * if (incremental) { args.addElement("-xidlon"); } else { - * args.addElement("-xidloff"); } - */ - } - /** - * Returns library path. - * - */ - public File[] getLibraryPath() { - if (libDirs == null) { - File CCloc = CUtil.getExecutableLocation("CC"); - if (CCloc != null) { - File compilerLib = new File(new File(CCloc, "../lib") - .getAbsolutePath()); - if (compilerLib.exists()) { - libDirs = new File[2]; - libDirs[0] = compilerLib; - } - } - if (libDirs == null) { - libDirs = new File[1]; - } - } - libDirs[libDirs.length - 1] = new File("/usr/lib"); - return libDirs; - } - public Linker getLinker(LinkType type) { - if (type.isStaticLibrary()) { - return arLinker; - } - if (type.isSharedLibrary()) { - return dllLinker; - } - return instance; - } -} diff --git a/src/net/sf/antcontrib/cpptasks/sun/ForteCCompiler.java b/src/net/sf/antcontrib/cpptasks/sun/ForteCCompiler.java deleted file mode 100644 index 9fb43da..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/ForteCCompiler.java +++ /dev/null @@ -1,98 +0,0 @@ -/* FREEHEP - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.OptimizationEnum; -/** - * Adapter for the Sun (r) Forte (tm) C compiler - * - * @author Mark Donszelmann - */ -public final class ForteCCompiler extends GccCompatibleCCompiler { - private static final ForteCCompiler instance = new ForteCCompiler("cc"); - /** - * Gets singleton instance of this class - */ - public static ForteCCompiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - /** - * Private constructor. Use ForteCCompiler.getInstance() to get singleton - * instance of this class. - */ - private ForteCCompiler(String command) { - super(command, "-V", false, null, false, null); - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - args.addElement("-c"); - if (debug) { - args.addElement("-g"); - } - if (optimization != null) { - if (optimization.isSpeed()) { - args.addElement("-xO2"); - } - } - if (multithreaded) { - args.addElement("-mt"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-KPIC"); - } - - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 1 : - case 2 : - args.addElement("+w"); - break; - case 3 : - case 4 : - case 5 : - args.addElement("+w2"); - break; - } - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - File ccLoc = CUtil.getExecutableLocation("cc"); - if (ccLoc != null) { - File compilerIncludeDir = new File( - new File(ccLoc, "../include").getAbsolutePath()); - if (compilerIncludeDir.exists()) { - includePath = new File[2]; - includePath[0] = compilerIncludeDir; - } - } - if (includePath == null) { - includePath = new File[1]; - } - includePath[includePath.length - 1] = new File("/usr/include"); - } - return includePath; - } - public Linker getLinker(LinkType linkType) { - return ForteCCLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} diff --git a/src/net/sf/antcontrib/cpptasks/sun/ForteF77Compiler.java b/src/net/sf/antcontrib/cpptasks/sun/ForteF77Compiler.java deleted file mode 100644 index 2230b66..0000000 --- a/src/net/sf/antcontrib/cpptasks/sun/ForteF77Compiler.java +++ /dev/null @@ -1,98 +0,0 @@ -/* FREEHEP - */ -package net.sf.antcontrib.cpptasks.sun; -import java.io.File; -import java.util.Vector; - -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.compiler.LinkType; -import net.sf.antcontrib.cpptasks.compiler.Linker; -import net.sf.antcontrib.cpptasks.gcc.GccCompatibleCCompiler; -import net.sf.antcontrib.cpptasks.OptimizationEnum; -/** - * Adapter for the Sun (r) Forte (tm) F77 compiler - * - * @author Mark Donszelmann - */ -public final class ForteF77Compiler extends GccCompatibleCCompiler { - private static final ForteF77Compiler instance = new ForteF77Compiler("f77"); - /** - * Gets singleton instance of this class - */ - public static ForteF77Compiler getInstance() { - return instance; - } - private String identifier; - private File[] includePath; - /** - * Private constructor. Use ForteF77Compiler.getInstance() to get singleton - * instance of this class. - */ - private ForteF77Compiler(String command) { - super(command, "-V", false, null, false, null); - } - public void addImpliedArgs(final Vector args, - final boolean debug, - final boolean multithreaded, - final boolean exceptions, - final LinkType linkType, - final Boolean rtti, - final OptimizationEnum optimization) { - args.addElement("-c"); - if (debug) { - args.addElement("-g"); - } - if (optimization != null) { - if (optimization.isSpeed()) { - args.addElement("-xO2"); - } - } - if (multithreaded) { - args.addElement("-mt"); - } - if (linkType.isSharedLibrary()) { - args.addElement("-KPIC"); - } - - } - public void addWarningSwitch(Vector args, int level) { - switch (level) { - case 0 : - args.addElement("-w"); - break; - case 1 : - case 2 : - args.addElement("+w"); - break; - case 3 : - case 4 : - case 5 : - args.addElement("+w2"); - break; - } - } - public File[] getEnvironmentIncludePath() { - if (includePath == null) { - File f77Loc = CUtil.getExecutableLocation("f77"); - if (f77Loc != null) { - File compilerIncludeDir = new File( - new File(f77Loc, "../include").getAbsolutePath()); - if (compilerIncludeDir.exists()) { - includePath = new File[2]; - includePath[0] = compilerIncludeDir; - } - } - if (includePath == null) { - includePath = new File[1]; - } - includePath[includePath.length - 1] = new File("/usr/include"); - } - return includePath; - } - public Linker getLinker(LinkType linkType) { - return ForteCCLinker.getInstance().getLinker(linkType); - } - public int getMaximumCommandLength() { - return Integer.MAX_VALUE; - } -} -- cgit v1.2.3