blob: d541a8a7a92de3e90d2484e640fe23dd7d21a8ad [file] [log] [blame]
Philipp Schrader9b1790e2018-03-10 20:21:30 -08001package(default_visibility = ["//visibility:public"])
Brian Silverman12b3fc52015-10-11 19:38:33 -04002
3cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -08004 name = "empty_main",
5 srcs = ["empty_main.c"],
Brian Silverman63889f92015-11-27 01:33:56 -05006)
7
8cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -08009 name = "malloc",
10 deps = select({
11 "//tools:has_asan": [],
12 "//tools:has_tsan": [],
13 "//tools:cpu_cortex_m4f": [],
Brian Silverman6c8b88b2018-09-03 18:17:02 -070014 "//tools:cpu_cortex_m4f_k22": [],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080015 "//conditions:default": ["//third_party/gperftools:tcmalloc"],
16 }),
Brian Silverman12b3fc52015-10-11 19:38:33 -040017)
18
19cc_library(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080020 name = "stl",
Brian Silverman12b3fc52015-10-11 19:38:33 -040021)
22
23filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080024 name = "empty",
25 srcs = [],
Brian Silverman12b3fc52015-10-11 19:38:33 -040026)
27
Brian Silvermanb200c172017-01-02 17:35:35 -080028# This is the entry point for --crosstool_top.
29cc_toolchain_suite(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080030 name = "toolchain",
31 toolchains = {
32 "k8|clang": ":cc-compiler-k8",
33 "roborio|gcc": ":cc-compiler-roborio",
34 "armhf-debian|clang": "cc-compiler-armhf-debian",
35 "cortex-m4f|gcc": "cc-compiler-cortex-m4f",
Brian Silverman6c8b88b2018-09-03 18:17:02 -070036 "cortex-m4f-k22|gcc": "cc-compiler-cortex-m4f-k22",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080037 },
Brian Silvermanb466eef2015-11-28 20:33:44 -050038)
39
40# Compiler inputs given by --copt etc in //tools:bazel.rc.
41filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080042 name = "flags_compiler_inputs",
43 srcs = select({
44 "//tools:has_asan": [
45 "asan-blacklist",
46 ],
47 "//tools:has_ubsan": [
48 "ubsan-blacklist",
49 ],
50 "//conditions:default": [],
51 }),
52)
53
54filegroup(
55 name = "clang_3p6_all_files",
56 srcs = [
57 ":flags_compiler_inputs",
58 "//tools/cpp/clang_3p6:as",
59 "//tools/cpp/clang_3p6:tool-wrappers",
60 "@clang_3p6_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050061 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080062)
63
64filegroup(
65 name = "clang_3p6_linker_files",
66 srcs = [
67 "//tools/cpp/clang_3p6:ar",
68 "//tools/cpp/clang_3p6:clang",
69 "//tools/cpp/clang_3p6:clang-symlinks",
70 "//tools/cpp/clang_3p6:ld",
71 "@clang_3p6_repo//:compiler_pieces",
Brian Silverman0d57fc82016-01-24 21:02:53 -050072 ],
Philipp Schrader9b1790e2018-03-10 20:21:30 -080073)
74
75filegroup(
Brian Silverman5c00e232018-08-12 02:08:32 -070076 name = "clang_3p6_strip_files",
77 srcs = [
78 "//tools/cpp/clang_3p6:strip",
79 "@clang_3p6_repo//:compiler_pieces",
80 ],
81)
82
83filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080084 name = "clang_3p6_compiler_files",
85 srcs = [
Brian Silverman7b8899e2018-06-30 19:19:24 -070086 "flags_compiler_inputs",
Philipp Schrader9b1790e2018-03-10 20:21:30 -080087 "//tools/cpp/clang_3p6:clang",
88 "//tools/cpp/clang_3p6:ld",
89 "@clang_3p6_repo//:compiler_components",
90 "@clang_3p6_repo//:compiler_pieces",
91 ],
Brian Silverman12b3fc52015-10-11 19:38:33 -040092)
93
94cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -080095 name = "cc-compiler-k8",
96 all_files = ":clang_3p6_all_files",
97 compiler_files = ":clang_3p6_compiler_files",
98 cpu = "k8",
99 dwp_files = ":empty",
100 dynamic_runtime_libs = [":empty"],
101 linker_files = ":clang_3p6_linker_files",
102 objcopy_files = "//tools/cpp/clang_3p6:objcopy",
103 static_runtime_libs = [":empty"],
Brian Silverman5c00e232018-08-12 02:08:32 -0700104 strip_files = ":clang_3p6_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800105 supports_param_files = 1,
Brian Silverman12b3fc52015-10-11 19:38:33 -0400106)
Austin Schuh23da18b2015-10-11 20:52:49 -0700107
Austin Schuh55139fe2015-10-14 23:55:24 -0700108filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800109 name = "roborio-compiler-files",
110 srcs = [
111 ":flags_compiler_inputs",
112 "//tools/cpp/arm-frc-linux-gnueabi:as",
113 "//tools/cpp/arm-frc-linux-gnueabi:tool-wrappers",
114 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
115 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700116)
117
118filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800119 name = "roborio_linker_files",
120 srcs = [
121 "//tools/cpp/arm-frc-linux-gnueabi:ar",
122 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
123 "//tools/cpp/arm-frc-linux-gnueabi:ld",
124 "//tools/cpp/arm-frc-linux-gnueabi:libs",
125 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
126 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700127)
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800128
Austin Schuh55139fe2015-10-14 23:55:24 -0700129filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800130 name = "roborio_compiler_files",
131 srcs = [
132 "//tools/cpp/arm-frc-linux-gnueabi:gcc",
133 "//tools/cpp/arm-frc-linux-gnueabi:ld",
134 "@arm_frc_linux_gnueabi_repo//:compiler_components",
135 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
136 ],
Austin Schuh55139fe2015-10-14 23:55:24 -0700137)
138
Brian Silverman50b9ac02018-08-12 13:24:10 -0700139filegroup(
140 name = "roborio_strip_files",
141 srcs = [
142 "//tools/cpp/arm-frc-linux-gnueabi:strip",
143 "@arm_frc_linux_gnueabi_repo//:compiler_pieces",
144 ],
145)
146
Austin Schuh23da18b2015-10-11 20:52:49 -0700147cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800148 name = "cc-compiler-roborio",
149 all_files = ":roborio-compiler-files",
150 compiler_files = ":roborio_compiler_files",
151 cpu = "roborio",
152 dwp_files = ":empty",
153 dynamic_runtime_libs = [":empty"],
154 linker_files = ":roborio_linker_files",
155 objcopy_files = "//tools/cpp/arm-frc-linux-gnueabi:objcopy",
156 static_runtime_libs = [":empty"],
Brian Silverman50b9ac02018-08-12 13:24:10 -0700157 strip_files = ":roborio_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800158 supports_param_files = 1,
Austin Schuh23da18b2015-10-11 20:52:49 -0700159)
Brian Silverman0d57fc82016-01-24 21:02:53 -0500160
161filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800162 name = "linaro-gcc-files",
163 srcs = [
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700164 ":clang_3p6_all_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800165 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
166 "//tools/cpp/linaro_linux_gcc:tool-wrappers",
167 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
168 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500169)
170
171filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800172 name = "linaro_linux_linker_files",
173 srcs = [
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700174 ":clang_3p6_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800175 "//tools/cpp/linaro_linux_gcc:ar",
176 "//tools/cpp/linaro_linux_gcc:clang",
177 "//tools/cpp/linaro_linux_gcc:clang-ld",
178 "//tools/cpp/linaro_linux_gcc:clang-symlinks",
179 "//tools/cpp/linaro_linux_gcc:gcc",
180 "//tools/cpp/linaro_linux_gcc:ld",
181 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
182 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500183)
184
185filegroup(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800186 name = "linaro_linux_compiler_files",
187 srcs = [
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700188 ":clang_3p6_compiler_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800189 "//tools/cpp/linaro_linux_gcc:as",
190 "//tools/cpp/linaro_linux_gcc:clang",
191 "//tools/cpp/linaro_linux_gcc:gcc",
192 "//tools/cpp/linaro_linux_gcc:ld",
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700193 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
194 ],
195)
196
197filegroup(
198 name = "linaro_linux_strip_files",
199 srcs = [
200 "//tools/cpp/linaro_linux_gcc:strip",
201 "@linaro_linux_gcc_4_9_repo//:compiler_pieces",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800202 ],
Brian Silverman0d57fc82016-01-24 21:02:53 -0500203)
204
205cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800206 name = "cc-compiler-armhf-debian",
207 all_files = ":linaro-gcc-files",
208 compiler_files = ":linaro_linux_compiler_files",
209 cpu = "armhf",
210 dwp_files = ":empty",
211 dynamic_runtime_libs = [":empty"],
212 linker_files = ":linaro_linux_linker_files",
213 objcopy_files = "//tools/cpp/linaro_linux_gcc:objcopy",
214 static_runtime_libs = [":empty"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -0700215 strip_files = ":linaro_linux_strip_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800216 supports_param_files = 1,
Brian Silverman0d57fc82016-01-24 21:02:53 -0500217)
Brian Silverman8b638692017-06-26 23:10:26 -0700218
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700219filegroup(
220 name = "gcc_arm_none_eabi_none_files",
221 srcs = [
222 "//tools/cpp/gcc_arm_none_eabi:tool-wrappers",
223 "@gcc_arm_none_eabi//:compiler_pieces",
224 ],
225)
226
227filegroup(
228 name = "gcc_arm_none_eabi_compiler_files",
229 srcs = [
230 "//tools/cpp/gcc_arm_none_eabi:as",
231 "//tools/cpp/gcc_arm_none_eabi:gcc",
232 "//tools/cpp/gcc_arm_none_eabi:ld",
233 ],
234)
235
236filegroup(
237 name = "gcc_arm_none_eabi_linker_files",
238 srcs = [
239 "//motors/core:linkerscripts",
240 "//tools/cpp/gcc_arm_none_eabi:ar",
241 "//tools/cpp/gcc_arm_none_eabi:gcc",
242 "//tools/cpp/gcc_arm_none_eabi:ld",
243 "@gcc_arm_none_eabi//:compiler_pieces",
244 ],
245)
246
Brian Silverman8b638692017-06-26 23:10:26 -0700247cc_toolchain(
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800248 name = "cc-compiler-cortex-m4f",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700249 all_files = ":gcc_arm_none_eabi_none_files",
250 compiler_files = ":gcc_arm_none_eabi_compiler_files",
Brian Silverman7b8899e2018-06-30 19:19:24 -0700251 cpu = "cortex-m4f",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800252 dwp_files = ":empty",
253 dynamic_runtime_libs = [":empty"],
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700254 linker_files = ":gcc_arm_none_eabi_linker_files",
255 objcopy_files = "//tools/cpp/gcc_arm_none_eabi:objcopy",
256 static_runtime_libs = [":empty"],
257 strip_files = "//tools/cpp/gcc_arm_none_eabi:strip",
258 supports_param_files = 1,
259)
260
261cc_toolchain(
262 name = "cc-compiler-cortex-m4f-k22",
263 all_files = ":gcc_arm_none_eabi_none_files",
264 compiler_files = ":gcc_arm_none_eabi_compiler_files",
265 cpu = "cortex-m4f-k22",
266 dwp_files = ":empty",
267 dynamic_runtime_libs = [":empty"],
268 linker_files = ":gcc_arm_none_eabi_linker_files",
Philipp Schrader9b1790e2018-03-10 20:21:30 -0800269 objcopy_files = ":empty",
270 static_runtime_libs = [":empty"],
271 strip_files = ":empty",
Brian Silverman6c8b88b2018-09-03 18:17:02 -0700272 supports_param_files = 1,
Brian Silverman8b638692017-06-26 23:10:26 -0700273)
Brian Silverman7b8899e2018-06-30 19:19:24 -0700274
275py_binary(
276 name = "gen_crosstool",
277 srcs = ["gen_crosstool.py"],
278 main = "gen_crosstool.py",
279 deps = [
280 "//third_party/bazel:crosstool_config_proto_py",
281 ],
282)