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 14module Tools where 15 16import System.FilePath 17import Data.Maybe(fromMaybe) 18 19findTool path prefix tool = path </> (prefix ++ tool) 20 21data ToolDetails = 22 ToolDetails { 23 toolPath :: FilePath, 24 toolPrefix :: String 25 } 26 27-- This is the default root under which toolchains are installed at ETH. 28-- It can be overridden when running Hake. 29mkRoot root = fromMaybe "/home/netos/tools" root 30 31-- 32-- ARM Cortex-A little-endian toolchains (armv7) 33-- 34 35-- System (Ubuntu) ARM toolchain 36arm_system _ 37 = ToolDetails { 38 toolPath = "", 39 toolPrefix = "arm-linux-gnueabi-" 40 } 41 42-- Linaro 2015.08 (GCC 5.1) 43arm_netos_linaro_2015_08 root 44 = ToolDetails { 45 toolPath = mkRoot root </> "linaro" </> 46 "gcc-linaro-5.1-2015.08-x86_64_arm-eabi" </> 47 "bin", 48 toolPrefix = "arm-eabi-" 49 } 50 51-- Linaro 2015.06 (GCC 4.8) 52arm_netos_linaro_2015_06 root 53 = ToolDetails { 54 toolPath = mkRoot root </> "linaro" </> 55 "gcc-linaro-4.8-2015.06-x86_64_arm-eabi" </> 56 "bin", 57 toolPrefix = "arm-eabi-" 58 } 59 60-- Linaro 2015.05 (GCC 4.9) 61arm_netos_linaro_2015_05 root 62 = ToolDetails { 63 toolPath = mkRoot root </> "linaro" </> 64 "gcc-linaro-4.9-2015.05-x86_64_arm-eabi" </> 65 "bin", 66 toolPrefix = "arm-eabi-" 67 } 68 69-- Linaro 2015.02 (GCC 4.9) 70arm_netos_linaro_2015_02 root 71 = ToolDetails { 72 toolPath = mkRoot root </> "linaro" </> 73 "gcc-linaro-4.9-2015.02-3-x86_64_arm-eabi" </> 74 "bin", 75 toolPrefix = "arm-eabi-" 76 } 77 78-- Linaro 2014.11 (GCC 4.9) 79arm_netos_linaro_2014_11 root 80 = ToolDetails { 81 toolPath = mkRoot root </> "linaro" </> 82 "gcc-linaro-4.9-2014.11-x86_64_arm-eabi" </> 83 "bin", 84 toolPrefix = "arm-eabi-" 85 } 86 87-- 88-- ARM AArch64 toolchains 89-- 90 91-- System (Ubuntu) ARM toolchain 92arm_system_aarch64 _ 93 = ToolDetails { 94 toolPath = "", 95 toolPrefix = "aarch64-linux-gnu-" 96 } 97 98-- Linaro 2015.08 (GCC 5.1) 99arm_netos_linaro_aarch64_2015_08 root 100 = ToolDetails { 101 toolPath = mkRoot root </> "linaro" </> 102 "gcc-linaro-5.1-2015.08-x86_64_aarch64-elf" </> 103 "bin", 104 toolPrefix = "aarch64-elf-" 105 } 106 107-- Linaro 2015.08 (GCC 5.1) 108arm_netos_linaro_aarch64_2016_02 root 109 = ToolDetails { 110 toolPath = mkRoot root </> "linaro" </> 111 "gcc-linaro-5.3-2016.02-x86_64_aarch64-elf" </> 112 "bin", 113 toolPrefix = "aarch64-elf-" 114 } 115 116-- Linaro 2015.02 (GCC 4.9) 117arm_netos_linaro_aarch64_2015_02 root 118 = ToolDetails { 119 toolPath = mkRoot root </> "linaro" </> 120 "gcc-linaro-4.9-2015.02-3-x86_64_aarch64-elf" </> 121 "bin", 122 toolPrefix = "aarch64-elf-" 123 } 124 125-- Linaro 2014.11 (GCC 4.9) 126arm_netos_linaro_aarch64_2014_11 root 127 = ToolDetails { 128 toolPath = mkRoot root </> "linaro" </> 129 "gcc-linaro-4.9-2014.11-x86_64_aarch64-elf" </> 130 "bin", 131 toolPrefix = "aarch64-none-elf-" 132 } 133 134-- 135-- ARM Cortex-M little-endian toolchains (armv7m) 136-- 137 138-- ARM-GCC 2014q4 (GCC 4.9) 139arm_netos_arm_2014q4 root 140 = ToolDetails { 141 toolPath = mkRoot root </> "gcc-arm-embedded" </> 142 "gcc-arm-none-eabi-4_9-2014q4" </> 143 "bin", 144 toolPrefix = "arm-none-eabi-" 145 } 146 147-- ARM-GCC 2015q1 (GCC 4.9) 148arm_netos_arm_2015q1 root 149 = ToolDetails { 150 toolPath = mkRoot root </> "gcc-arm-embedded" </> 151 "gcc-arm-none-eabi-4_9-2015q1" </> 152 "bin", 153 toolPrefix = "arm-none-eabi-" 154 } 155 156-- ARM-GCC 2015q2 (GCC 4.9) 157arm_netos_arm_2015q2 root 158 = ToolDetails { 159 toolPath = mkRoot root </> "gcc-arm-embedded" </> 160 "gcc-arm-none-eabi-4_9-2015q2" </> 161 "bin", 162 toolPrefix = "arm-none-eabi-" 163 } 164 165-- 166-- ARM big-endian toolchains (xscale) 167-- 168 169-- Linaro 2015.02 (GCC 4.9) 170arm_netos_linaro_be_2015_02 root 171 = ToolDetails { 172 toolPath = mkRoot root </> "linaro" </> 173 "gcc-linaro-4.9-2015.02-3-x86_64_armeb-eabi" </> 174 "bin", 175 toolPrefix = "armeb-eabi-" 176 } 177 178-- System (Ubuntu 16.04) aarch64 toolchain 179aarch64_system _ 180 = ToolDetails { 181 toolPath = "", 182 toolPrefix = "aarch64-linux-gnu-" 183 } 184 185-- 186-- 187-- X86 (32/64) toolchains (x86_32,x86_64) 188-- 189 190-- System (Ubuntu) ARM toolchain 191x86_system _ 192 = ToolDetails { 193 toolPath = "", 194 toolPrefix = "x86_64-linux-gnu-" 195 } 196 197-- 198-- Xeon Phi toolchains (k1om) 199-- 200 201-- Intel MPSS 3.4 (GCC 4.7) 202k1om_netos_mpss_3_4 root 203 = ToolDetails { 204 toolPath = mkRoot root </> 205 "mpss-3.4/x86_64-mpsssdk-linux" </> 206 "usr/bin/k1om-mpss-linux", 207 toolPrefix = "k1om-mpss-linux-" 208 } 209 210k1om_netos_mpss_3_7_1 root 211 = ToolDetails { 212 toolPath = mkRoot root </> 213 "mpss-3.7.1/x86_64-mpsssdk-linux" </> 214 "usr/bin/k1om-mpss-linux", 215 toolPrefix = "k1om-mpss-linux-" 216 } 217 218k1om_system root 219 = ToolDetails { 220 toolPath = "", 221 toolPrefix = "k1om-mpss-linux-" 222 } 223