3 * Copyright 2001-2004 The Ant-Contrib project
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 package net
.sf
.antcontrib
.cpptasks
.ibm
;
19 import java
.util
.Vector
;
21 import net
.sf
.antcontrib
.cpptasks
.compiler
.LinkType
;
22 import net
.sf
.antcontrib
.cpptasks
.compiler
.Linker
;
23 import net
.sf
.antcontrib
.cpptasks
.gcc
.GccCompatibleCCompiler
;
24 import net
.sf
.antcontrib
.cpptasks
.OptimizationEnum
;
26 import org
.apache
.tools
.ant
.types
.Environment
;
28 * Adapter for the IBM(r) Visual Age(tm) C++ compiler for AIX(tm)
32 public final class VisualAgeCCompiler
extends GccCompatibleCCompiler
{
33 private static final VisualAgeCCompiler instance
= new VisualAgeCCompiler(
36 * Gets singleton instance of this class
38 public static VisualAgeCCompiler
getInstance() {
41 private String identifier
;
42 private File
[] includePath
;
44 * Private constructor. Use getInstance() to get singleton instance of this
47 private VisualAgeCCompiler(String command
, boolean newEnvironment
,
49 super(command
, "-help", false, null, newEnvironment
, env
);
51 public void addImpliedArgs(final Vector args
,
53 final boolean multithreaded
,
54 final boolean exceptions
,
55 final LinkType linkType
,
57 final OptimizationEnum optimization
) {
58 args
.addElement("-c");
60 args
.addElement("-g");
62 if (linkType
.isSharedLibrary()) {
63 args
.addElement("-fpic");
66 if (rtti
.booleanValue()) {
67 args
.addElement("-qrtti=all");
69 args
.addElement("-qnortti");
73 public void addWarningSwitch(Vector args
, int level
) {
76 args
.addElement("-w");
79 args
.addElement("-qflag=s:s");
82 args
.addElement("-qflag=e:e");
85 args
.addElement("-qflag=w:w");
88 args
.addElement("-qflag=i:i");
91 args
.addElement("-qhalt=w:w");
95 public Linker
getLinker(LinkType linkType
) {
96 return VisualAgeLinker
.getInstance().getLinker(linkType
);
98 public int getMaximumCommandLength() {
99 return Integer
.MAX_VALUE
;
102 * Gets identifier for the compiler.
104 * Initial attempt at extracting version information
105 * would lock up. Using a stock response.
107 public String
getIdentifier() {
108 return "VisualAge compiler - unidentified version";