1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.github.maven_nar.cpptasks.ibm;
21
22 import java.util.Vector;
23
24 import com.github.maven_nar.cpptasks.CCTask;
25 import com.github.maven_nar.cpptasks.compiler.LinkType;
26 import com.github.maven_nar.cpptasks.compiler.Linker;
27 import com.github.maven_nar.cpptasks.gcc.AbstractLdLinker;
28 import com.github.maven_nar.cpptasks.gcc.GccLibrarian;
29
30
31
32
33
34
35 public final class VisualAgeLinker extends AbstractLdLinker {
36 private static final String[] discardFiles = new String[] {};
37 private static final String[] objFiles = new String[] {
38 ".o", ".a", ".lib", ".dll", ".so", ".sl"
39 };
40 private static final VisualAgeLinker dllLinker = new VisualAgeLinker("xlC", objFiles, discardFiles, "lib", ".a");
41 private static final VisualAgeLinker instance = new VisualAgeLinker("xlC", objFiles, discardFiles, "", "");
42
43 public static VisualAgeLinker getInstance() {
44 return instance;
45 }
46
47 private VisualAgeLinker(final String command, final String[] extensions, final String[] ignoredExtensions,
48 final String outputPrefix, final String outputSuffix) {
49
50
51
52 super(command, "-?", extensions, ignoredExtensions, outputPrefix, outputSuffix, false, null);
53 }
54
55 @Override
56 public void
57 addImpliedArgs(final CCTask task, final boolean debug, final LinkType linkType, final Vector<String> args) {
58 if (debug) {
59
60 }
61 if (linkType.isSharedLibrary()) {
62 args.addElement("-qmkshrobj");
63 }
64 }
65
66 @Override
67 protected String getDynamicLibFlag() {
68 return "-bdynamic";
69 }
70
71
72
73
74
75
76
77 @Override
78 public String getIdentifier() {
79 return "VisualAge linker - unidentified version";
80 }
81
82 @Override
83 public Linker getLinker(final LinkType type) {
84 if (type.isStaticLibrary()) {
85 return GccLibrarian.getInstance();
86 }
87 if (type.isSharedLibrary()) {
88 return dllLinker;
89 }
90 return instance;
91 }
92
93 @Override
94 protected String getStaticLibFlag() {
95 return "-bstatic";
96 }
97
98 }