blob: 06ec91c4933a1295da67cb1b15e4ae4ff6e3316f [file] [log] [blame]
Martin Rothadaab4a2022-10-28 22:38:44 -06001## SPDX-License-Identifier: GPL-2.0-only
Martin Roth403ba772015-06-27 19:09:05 -06002# if no architecture is specified, set a default
3BUILD_PLATFORM ?= i386-elf
Stefan Reinauer9b1936d2016-03-01 12:55:47 -08004DEST ?= $(CURDIR)/xgcc
Cristian Magherusan-Stanciu0b933d42011-05-16 01:35:03 +00005
Martin Roth8fe68182015-10-27 15:03:46 -06006# For the toolchain builds, use CPUS=x to use multiple processors to build
7# use KEEP_SOURCES=1 to keep temporary files after the build
8# use BUILDGCC_OPTIONS= to set any other crossgcc command line options
9# Example: BUILDGCC_OPTIONS=-c to remove temporary files before build
10
Patrick Georgif32eed12021-10-16 10:50:00 +020011all:
Julius Wernerf96d9052019-08-16 15:35:39 -070012 $(MAKE) build-i386 build-x64 build-arm \
Jonathan Neuschäferc22ad582018-11-30 00:06:50 +010013 build-riscv build-aarch64 build-ppc64 build-nds32le \
Elyes HAOUAS91fb1392020-01-20 15:33:11 +010014 build_clang build_iasl build_nasm
Martin Roth403ba772015-06-27 19:09:05 -060015
Martin Roth403ba772015-06-27 19:09:05 -060016###########################################################
17### targets to do buildgcc builds
18
19build_gcc:
Martin Roth8fe68182015-10-27 15:03:46 -060020 bash ./buildgcc -p $(BUILD_PLATFORM) $(if $(CPUS),-j $(CPUS)) $(if $(KEEP_SOURCES),-t) $(BUILDGCC_OPTIONS) \
Stefan Reinauer163506a2016-02-27 12:29:58 -080021 $(if $(BUILD_LANGUAGES),-l $(BUILD_LANGUAGES)) -d $(DEST)
Martin Roth403ba772015-06-27 19:09:05 -060022
Martin Roth403ba772015-06-27 19:09:05 -060023build_iasl:
Stefan Reinauer163506a2016-02-27 12:29:58 -080024 bash ./buildgcc -P iasl $(if $(CPUS),-j $(CPUS)) $(if $(KEEP_SOURCES),-t) $(BUILDGCC_OPTIONS) -d $(DEST)
Martin Roth403ba772015-06-27 19:09:05 -060025
26build_clang:
Martin Roth8fe68182015-10-27 15:03:46 -060027ifeq ($(SKIP_CLANG),)
Stefan Reinauer163506a2016-02-27 12:29:58 -080028 bash ./buildgcc -P clang $(if $(CPUS),-j $(CPUS)) $(if $(KEEP_SOURCES),-t) $(BUILDGCC_OPTIONS) -d $(DEST)
Martin Roth8fe68182015-10-27 15:03:46 -060029endif
Martin Roth403ba772015-06-27 19:09:05 -060030
Martin Rothd70f5fa2019-05-26 17:24:19 -060031build_nasm:
32 bash ./buildgcc -P nasm $(if $(CPUS),-j $(CPUS)) $(if $(KEEP_SOURCES),-t) $(BUILDGCC_OPTIONS) -d $(DEST)
33
Martin Roth403ba772015-06-27 19:09:05 -060034###########################################################
Edward O'Callaghan3a722782013-11-02 03:40:39 +110035build-i386:
Patrick Georgif32eed12021-10-16 10:50:00 +020036 @$(MAKE) build_gcc build_nasm BUILD_PLATFORM=i386-elf
Edward O'Callaghan3a722782013-11-02 03:40:39 +110037
Stefan Reinauer24f9cb92015-03-13 22:50:22 +010038build-x64:
Patrick Georgif32eed12021-10-16 10:50:00 +020039 @$(MAKE) build_gcc build_nasm BUILD_PLATFORM=x86_64-elf
Stefan Reinauer24f9cb92015-03-13 22:50:22 +010040
Stefan Reinauer2cc2ff62016-01-29 17:39:07 -080041build-arm:
Patrick Georgif32eed12021-10-16 10:50:00 +020042 @$(MAKE) build_gcc BUILD_PLATFORM=arm-eabi
Cristian Magherusan-Stanciu0b933d42011-05-16 01:35:03 +000043
Patrick Georgi3bff5d92014-11-19 18:36:37 +010044build-aarch64:
Patrick Georgif32eed12021-10-16 10:50:00 +020045 @$(MAKE) build_gcc BUILD_PLATFORM=aarch64-elf
Patrick Georgi3bff5d92014-11-19 18:36:37 +010046
Alexander Couzensa49c0cc2015-03-10 20:24:34 +010047build-riscv:
Stefan Reinauerc77e0412016-03-01 22:28:20 -080048 @$(MAKE) build_gcc BUILD_PLATFORM=riscv-elf
Patrick Georgif0bbc952015-03-07 10:57:25 +010049
Jonathan Neuschäferc22ad582018-11-30 00:06:50 +010050build-ppc64:
Patrick Georgif32eed12021-10-16 10:50:00 +020051 @$(MAKE) build_gcc BUILD_PLATFORM=powerpc64-linux-gnu
Timothy Pearsona9f62352015-12-30 18:59:00 -060052
Stefan Reinauer8adbcc22016-01-29 17:39:07 -080053build-nds32le:
Patrick Georgif32eed12021-10-16 10:50:00 +020054 @$(MAKE) build_gcc BUILD_PLATFORM=nds32le-elf
Stefan Reinauer8adbcc22016-01-29 17:39:07 -080055
Martin Roth403ba772015-06-27 19:09:05 -060056clean_tempfiles:
Martin Roth32c96512015-06-21 13:05:03 -060057 rm -rf build-*
Nico Huberafda56e2017-12-07 17:50:53 +010058 rm -rf binutils-* gcc-* gmp-* mpc-* mpfr-*
Martin Roth32c96512015-06-21 13:05:03 -060059 rm -rf llvm-* clang-tools-* cfe-* compiler-rt-*
60 rm -rf acpica-*
zbaoff3f15c2015-08-26 22:00:31 -040061 rm -f getopt
Cristian Magherusan-Stanciu0b933d42011-05-16 01:35:03 +000062
Martin Roth403ba772015-06-27 19:09:05 -060063clean: clean_tempfiles
64 rm -rf xgcc
65
Martin Roth32c96512015-06-21 13:05:03 -060066distclean: clean
67 rm -rf tarballs
68
Elyes HAOUAS52607fd2021-11-17 18:59:51 +010069.PHONY: all build_gcc build_iasl build_clang build_nasm \
Patrick Georgi6dad77d2021-11-01 16:24:35 +000070 clean distclean clean_tempfiles \
71 build-i386 build-x64 build-arm build-aarch64 \
72 build-riscv build-ppc64 build-nds32le
73
Alexander Couzensf126b4b2017-08-27 21:08:50 +020074.NOTPARALLEL: