223 lines
5.6 KiB
Haskell
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-"
|
|
}
|