aos/hake/Tools.hs
Daniel Schwyn 6d444bf552 Main handout
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>
2022-03-03 14:57:51 +01:00

223 lines
5.6 KiB
Haskell

--------------------------------------------------------------------------
-- Copyright (c) 2015 ETH Zurich.
-- All rights reserved.
--
-- This file is distributed under the terms in the attached LICENSE file.
-- If you do not find this file, copies can be found by writing to:
-- ETH Zurich D-INFK, CAB F.78, Universitaetstrasse 6, CH-8092 Zurich,
-- Attn: Systems Group.
--
-- Toolchain definitions for Hake
--
--------------------------------------------------------------------------
module Tools where
import System.FilePath
import Data.Maybe(fromMaybe)
findTool path prefix tool = path </> (prefix ++ tool)
data ToolDetails =
ToolDetails {
toolPath :: FilePath,
toolPrefix :: String
}
-- This is the default root under which toolchains are installed at ETH.
-- It can be overridden when running Hake.
mkRoot root = fromMaybe "/home/netos/tools" root
--
-- ARM Cortex-A little-endian toolchains (armv7)
--
-- System (Ubuntu) ARM toolchain
arm_system _
= ToolDetails {
toolPath = "",
toolPrefix = "arm-linux-gnueabi-"
}
-- Linaro 2015.08 (GCC 5.1)
arm_netos_linaro_2015_08 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-5.1-2015.08-x86_64_arm-eabi" </>
"bin",
toolPrefix = "arm-eabi-"
}
-- Linaro 2015.06 (GCC 4.8)
arm_netos_linaro_2015_06 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.8-2015.06-x86_64_arm-eabi" </>
"bin",
toolPrefix = "arm-eabi-"
}
-- Linaro 2015.05 (GCC 4.9)
arm_netos_linaro_2015_05 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.9-2015.05-x86_64_arm-eabi" </>
"bin",
toolPrefix = "arm-eabi-"
}
-- Linaro 2015.02 (GCC 4.9)
arm_netos_linaro_2015_02 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.9-2015.02-3-x86_64_arm-eabi" </>
"bin",
toolPrefix = "arm-eabi-"
}
-- Linaro 2014.11 (GCC 4.9)
arm_netos_linaro_2014_11 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.9-2014.11-x86_64_arm-eabi" </>
"bin",
toolPrefix = "arm-eabi-"
}
--
-- ARM AArch64 toolchains
--
-- System (Ubuntu) ARM toolchain
arm_system_aarch64 _
= ToolDetails {
toolPath = "",
toolPrefix = "aarch64-linux-gnu-"
}
-- Linaro 2015.08 (GCC 5.1)
arm_netos_linaro_aarch64_2015_08 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-5.1-2015.08-x86_64_aarch64-elf" </>
"bin",
toolPrefix = "aarch64-elf-"
}
-- Linaro 2015.08 (GCC 5.1)
arm_netos_linaro_aarch64_2016_02 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-5.3-2016.02-x86_64_aarch64-elf" </>
"bin",
toolPrefix = "aarch64-elf-"
}
-- Linaro 2015.02 (GCC 4.9)
arm_netos_linaro_aarch64_2015_02 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.9-2015.02-3-x86_64_aarch64-elf" </>
"bin",
toolPrefix = "aarch64-elf-"
}
-- Linaro 2014.11 (GCC 4.9)
arm_netos_linaro_aarch64_2014_11 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.9-2014.11-x86_64_aarch64-elf" </>
"bin",
toolPrefix = "aarch64-none-elf-"
}
--
-- ARM Cortex-M little-endian toolchains (armv7m)
--
-- ARM-GCC 2014q4 (GCC 4.9)
arm_netos_arm_2014q4 root
= ToolDetails {
toolPath = mkRoot root </> "gcc-arm-embedded" </>
"gcc-arm-none-eabi-4_9-2014q4" </>
"bin",
toolPrefix = "arm-none-eabi-"
}
-- ARM-GCC 2015q1 (GCC 4.9)
arm_netos_arm_2015q1 root
= ToolDetails {
toolPath = mkRoot root </> "gcc-arm-embedded" </>
"gcc-arm-none-eabi-4_9-2015q1" </>
"bin",
toolPrefix = "arm-none-eabi-"
}
-- ARM-GCC 2015q2 (GCC 4.9)
arm_netos_arm_2015q2 root
= ToolDetails {
toolPath = mkRoot root </> "gcc-arm-embedded" </>
"gcc-arm-none-eabi-4_9-2015q2" </>
"bin",
toolPrefix = "arm-none-eabi-"
}
--
-- ARM big-endian toolchains (xscale)
--
-- Linaro 2015.02 (GCC 4.9)
arm_netos_linaro_be_2015_02 root
= ToolDetails {
toolPath = mkRoot root </> "linaro" </>
"gcc-linaro-4.9-2015.02-3-x86_64_armeb-eabi" </>
"bin",
toolPrefix = "armeb-eabi-"
}
-- System (Ubuntu 16.04) aarch64 toolchain
aarch64_system _
= ToolDetails {
toolPath = "",
toolPrefix = "aarch64-linux-gnu-"
}
--
--
-- X86_64 toolchains (x86_64)
--
-- System (Ubuntu) ARM toolchain
x86_system _
= ToolDetails {
toolPath = "",
toolPrefix = "x86_64-linux-gnu-"
}
--
-- Xeon Phi toolchains (k1om)
--
-- Intel MPSS 3.4 (GCC 4.7)
k1om_netos_mpss_3_4 root
= ToolDetails {
toolPath = mkRoot root </>
"mpss-3.4/x86_64-mpsssdk-linux" </>
"usr/bin/k1om-mpss-linux",
toolPrefix = "k1om-mpss-linux-"
}
k1om_netos_mpss_3_7_1 root
= ToolDetails {
toolPath = mkRoot root </>
"mpss-3.7.1/x86_64-mpsssdk-linux" </>
"usr/bin/k1om-mpss-linux",
toolPrefix = "k1om-mpss-linux-"
}
k1om_system root
= ToolDetails {
toolPath = "",
toolPrefix = "k1om-mpss-linux-"
}