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.gcc.cross.sparc_sun_solaris2;
21
22 import java.io.File;
23
24 import com.github.maven_nar.cpptasks.compiler.LinkType;
25 import com.github.maven_nar.cpptasks.compiler.Linker;
26 import com.github.maven_nar.cpptasks.gcc.AbstractLdLinker;
27
28
29
30
31
32
33 public final class LdLinker extends AbstractLdLinker {
34 private static final String[] discardFiles = new String[0];
35 private static final String[] libtoolObjFiles = new String[] {
36 ".fo", ".a", ".lib", ".dll", ".so", ".sl"
37 };
38 private static final String[] objFiles = new String[] {
39 ".o", ".a", ".lib", ".dll", ".so", ".sl"
40 };
41 private static final LdLinker dllLinker = new LdLinker(GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "lib",
42 ".so", false, new LdLinker(GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "lib", ".so", true, null));
43 private static final LdLinker instance = new LdLinker(GccCCompiler.CMD_PREFIX + "ld", objFiles, discardFiles, "", "",
44 false, null);
45
46 public static LdLinker getInstance() {
47 return instance;
48 }
49
50 private File[] libDirs;
51
52 private LdLinker(final String command, final String[] extensions, final String[] ignoredExtensions,
53 final String outputPrefix, final String outputSuffix, final boolean isLibtool, final LdLinker libtoolLinker) {
54 super(command, "-version", extensions, ignoredExtensions, outputPrefix, outputSuffix, isLibtool, libtoolLinker);
55 }
56
57 @Override
58 public Linker getLinker(final LinkType type) {
59 if (type.isStaticLibrary()) {
60 return GccLibrarian.getInstance();
61 }
62 if (type.isSharedLibrary()) {
63 return dllLinker;
64 }
65 return instance;
66 }
67 }