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