]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java
Restructuring for better separation of Tool packages.
[mirror_edk2.git] / Tools / Java / Source / Cpptasks / net / sf / antcontrib / cpptasks / sun / C89Processor.java
diff --git a/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java b/Tools/Java/Source/Cpptasks/net/sf/antcontrib/cpptasks/sun/C89Processor.java
new file mode 100644 (file)
index 0000000..c54c866
--- /dev/null
@@ -0,0 +1,116 @@
+/*\r
+ * \r
+ * Copyright 2002-2004 The Ant-Contrib project\r
+ *\r
+ *  Licensed under the Apache License, Version 2.0 (the "License");\r
+ *  you may not use this file except in compliance with the License.\r
+ *  You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *  Unless required by applicable law or agreed to in writing, software\r
+ *  distributed under the License is distributed on an "AS IS" BASIS,\r
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *  See the License for the specific language governing permissions and\r
+ *  limitations under the License.\r
+ */\r
+package net.sf.antcontrib.cpptasks.sun;\r
+import java.util.Vector;\r
+import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;\r
+\r
+/**\r
+ * A add-in class for Sun C89 compilers and linkers\r
+ * \r
+ * @author Hiram Chirino (cojonudo14@hotmail.com)\r
+ */\r
+public class C89Processor {\r
+    private static int addLibraryPatterns(String[] libnames, StringBuffer buf,\r
+            String prefix, String extension, String[] patterns, int offset) {\r
+        for (int i = 0; i < libnames.length; i++) {\r
+            buf.setLength(0);\r
+            buf.append(prefix);\r
+            buf.append(libnames[i]);\r
+            buf.append(extension);\r
+            patterns[offset + i] = buf.toString();\r
+        }\r
+        return offset + libnames.length;\r
+    }\r
+    public static void addWarningSwitch(Vector args, int level) {\r
+        switch (level) {\r
+        /*\r
+         * case 0: args.addElement("/W0"); break;\r
+         * \r
+         * case 1: args.addElement("/W1"); break;\r
+         * \r
+         * case 2: break;\r
+         * \r
+         * case 3: args.addElement("/W3"); break;\r
+         * \r
+         * case 4: args.addElement("/W4"); break;\r
+         */\r
+        }\r
+    }\r
+    public static String getCommandFileSwitch(String cmdFile) {\r
+        StringBuffer buf = new StringBuffer("@");\r
+        if (cmdFile.indexOf(' ') >= 0) {\r
+            buf.append('\"');\r
+            buf.append(cmdFile);\r
+            buf.append('\"');\r
+        } else {\r
+            buf.append(cmdFile);\r
+        }\r
+        return buf.toString();\r
+    }\r
+    public static void getDefineSwitch(StringBuffer buf, String define,\r
+            String value) {\r
+        buf.setLength(0);\r
+        buf.append("-D");\r
+        buf.append(define);\r
+        if (value != null && value.length() > 0) {\r
+            buf.append('=');\r
+            buf.append(value);\r
+        }\r
+    }\r
+    public static String getIncludeDirSwitch(String includeDir) {\r
+        return "-I" + includeDir;\r
+    }\r
+    public static String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {\r
+        StringBuffer buf = new StringBuffer();\r
+        int patternCount = libnames.length*2;\r
+        if (libType != null) {\r
+               patternCount = libnames.length;\r
+        }\r
+        String[] patterns = new String[patternCount];\r
+        int offset = 0;\r
+        if (libType == null || "static".equals(libType.getValue())) {\r
+               offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0);\r
+        }\r
+        if (libType == null || !"static".equals(libType.getValue())) {\r
+               offset = addLibraryPatterns(libnames, buf, "lib", ".so", patterns,\r
+                offset);\r
+        }\r
+        return patterns;\r
+    }\r
+    public static String[] getOutputFileSwitch(String outPath) {\r
+        StringBuffer buf = new StringBuffer("-o ");\r
+        if (outPath.indexOf(' ') >= 0) {\r
+            buf.append('\"');\r
+            buf.append(outPath);\r
+            buf.append('\"');\r
+        } else {\r
+            buf.append(outPath);\r
+        }\r
+        String[] retval = new String[]{buf.toString()};\r
+        return retval;\r
+    }\r
+    public static void getUndefineSwitch(StringBuffer buf, String define) {\r
+        buf.setLength(0);\r
+        buf.append("-U");\r
+        buf.append(define);\r
+    }\r
+    public static boolean isCaseSensitive() {\r
+        return true;\r
+    }\r
+    private C89Processor() {\r
+    }\r
+}\r