Consolidated toolchain selection
[barrelfish] / hake / Tools.hs
1 --------------------------------------------------------------------------
2 -- Copyright (c) 2015 ETH Zurich.
3 -- All rights reserved.
4 --
5 -- This file is distributed under the terms in the attached LICENSE file.
6 -- If you do not find this file, copies can be found by writing to:
7 -- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
8 -- Attn: Systems Group.
9 --
10 -- Toolchain definitions for Hake
11 -- 
12 --------------------------------------------------------------------------
13
14 module Tools where
15
16 import System.FilePath
17
18 findTool path prefix tool = path </> (prefix ++ tool)
19
20 data ToolDetails =
21     ToolDetails {
22         toolPath :: FilePath,
23         toolPrefix :: String
24     }
25
26 --
27 -- ARM Cortex-A little-endian toolchains (armv7,armv5)
28 --
29
30 -- System (Ubuntu) ARM toolchain
31 arm_system
32     = ToolDetails {
33         toolPath = "",
34         toolPrefix = "arm-linux-gnueabi-"
35       }
36
37 -- Linaro 2015.06 (GCC 4.8)
38 arm_netos_linaro_2015_06
39     = ToolDetails {
40         toolPath = "/home/netos/tools/linaro" </>
41                    "gcc-linaro-4.8-2015.06-x86_64_arm-eabi" </>
42                    "bin",
43         toolPrefix = "arm-eabi-"
44       }
45
46 -- Linaro 2015.05 (GCC 4.9)
47 arm_netos_linaro_2015_05
48     = ToolDetails {
49         toolPath = "/home/netos/tools/linaro" </>
50                    "gcc-linaro-4.9-2015.05-x86_64_arm-eabi" </>
51                    "bin",
52         toolPrefix = "arm-eabi-"
53       }
54
55 -- Linaro 2015.02 (GCC 4.9)
56 arm_netos_linaro_2015_02
57     = ToolDetails {
58         toolPath = "/home/netos/tools/linaro" </>
59                    "gcc-linaro-4.9-2015.02-3-x86_64_arm-eabi" </>
60                    "bin",
61         toolPrefix = "arm-eabi-"
62       }
63
64 -- Linaro 2014.11 (GCC 4.9)
65 arm_netos_linaro_2014_11
66     = ToolDetails {
67         toolPath = "/home/netos/tools/linaro" </>
68                    "gcc-linaro-4.9-2014.11-x86_64_arm-eabi" </>
69                    "bin",
70         toolPrefix = "arm-eabi-"
71       }
72
73 --
74 -- ARM Cortex-M little-endian toolchains (armv7m)
75 --
76
77 -- ARM-GCC 2014q4 (GCC 4.9)
78 arm_netos_arm_2014q4
79     = ToolDetails {
80         toolPath = "/home/netos/tools/gcc-arm-embedded" </>
81                    "gcc-arm-none-eabi-4_9-2014q4" </>
82                    "bin",
83         toolPrefix = "arm-eabi-"
84       }
85
86 -- ARM-GCC 2015q1 (GCC 4.9)
87 arm_netos_arm_2015q1
88     = ToolDetails {
89         toolPath = "/home/netos/tools/gcc-arm-embedded" </>
90                    "gcc-arm-none-eabi-4_9-2015q1" </>
91                    "bin",
92         toolPrefix = "arm-eabi-"
93       }
94
95 -- ARM-GCC 2015q2 (GCC 4.9)
96 arm_netos_arm_2015q2
97     = ToolDetails {
98         toolPath = "/home/netos/tools/gcc-arm-embedded" </>
99                    "gcc-arm-none-eabi-4_9-2015q2" </>
100                    "bin",
101         toolPrefix = "arm-eabi-"
102       }
103
104 --
105 -- ARM big-endian toolchains (xscale)
106 --
107
108 -- Linaro 2015.02 (GCC 4.9)
109 arm_netos_linaro_be_2015_02
110     = ToolDetails {
111         toolPath = "/home/netos/tools/linaro" </>
112                    "gcc-linaro-4.9-2015.02-3-x86_64_armeb-eabi" </>
113                    "bin",
114         toolPrefix = "armeb-eabi-"
115       }
116
117 --
118 -- X86 (32/64) toolchains (x86_32,x86_64)
119 --
120
121 -- System (Ubuntu) ARM toolchain
122 x86_system
123     = ToolDetails {
124         toolPath = "",
125         toolPrefix = "x86_64-linux-gnu-"
126       }
127
128 --
129 -- Xeon Phi toolchains (k1om)
130 --
131
132 -- Intel MPSS 3.4 (GCC 4.7)
133 k1om_netos_mpss_3_4
134     = ToolDetails {
135         toolPath = "/home/netos/tools" </>
136                    "mpss-3.4/x86_64-mpsssdk-linux" </> 
137                    "usr/bin/k1om-mpss-linux",
138         toolPrefix = "k1om-mpss-linux-"
139       }