blob: 6160d015fff4f2bc8429b93c82815a7f5f30d5a4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
BINUTILS_VERSION := 2.41
GCC_VERSION := 13.2.0
TOOLCHAIN := x86_64-jove
TOOLDIR := $(PWD)/tools
SCRIPTDIR := $(PWD)/scripts
TOOL_SRCDIR := $(TOOLDIR)/src
TOOL_BUILDDIR := $(TOOLDIR)/build
SYSROOT_DIR := $(PWD)/sysroot
BINUTILS_ARCHIVE := binutils-$(BINUTILS_VERSION).tar.gz
BINUTILS_URL := https://ftp.gnu.org/gnu/binutils/$(BINUTILS_ARCHIVE)
BINUTILS_PATCHFILE := $(SCRIPTDIR)/binutils-$(BINUTILS_VERSION).diff
BINUTILS_SRCDIR := $(TOOL_SRCDIR)/binutils-$(BINUTILS_VERSION)
BINUTILS_BUILDDIR := $(TOOL_BUILDDIR)/binutils
GCC_ARCHIVE := gcc-$(GCC_VERSION).tar.gz
GCC_URL := https://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION)/$(GCC_ARCHIVE)
GCC_PATCHFILE := $(SCRIPTDIR)/gcc-$(GCC_VERSION).diff
GCC_SRCDIR := $(TOOL_SRCDIR)/gcc-$(GCC_VERSION)
GCC_BUILDDIR := $(TOOL_BUILDDIR)/gcc
all: $(TOOLDIR) $(BINUTILS_BUILDDIR) $(GCC_BUILDDIR)
.ONESHELL:
$(BINUTILS_BUILDDIR): $(BINUTILS_SRCDIR)
mkdir -p $(BINUTILS_BUILDDIR)
cd $(BINUTILS_BUILDDIR)
$(BINUTILS_SRCDIR)/configure --target=$(TOOLCHAIN) --prefix="$(TOOLDIR)" --with-sysroot=$(SYSROOT_DIR) --disable-nls --disable-werror
make -j4
make install
.PHONY: $(GCC_BUILDDIR)
.ONESHELL:
$(GCC_BUILDDIR): $(GCC_SRCDIR)
mkdir -p $(GCC_BUILDDIR)
cd $(GCC_BUILDDIR)
$(GCC_SRCDIR)/configure --target=$(TOOLCHAIN) --prefix="$(TOOLDIR)" --disable-nls --enable-languages=c --with-sysroot=$(SYSROOT_DIR)
make all-gcc -j4
make all-target-libgcc -j4
make install-gcc
make install-target-libgcc
$(BINUTILS_SRCDIR): $(TOOLDIR)/$(BINUTILS_ARCHIVE)
tar -xzvf $(TOOLDIR)/$(BINUTILS_ARCHIVE) -C $(TOOL_SRCDIR)
patch --directory=$(BINUTILS_SRCDIR) --strip=1 < $(BINUTILS_PATCHFILE)
cd $(BINUTILS_SRCDIR)/ld && automake
$(GCC_SRCDIR): $(TOOLDIR)/$(GCC_ARCHIVE)
tar -xzvf $(TOOLDIR)/$(GCC_ARCHIVE) -C $(TOOL_SRCDIR)
patch --directory=$(GCC_SRCDIR) --strip=1 < $(GCC_PATCHFILE)
cd $(GCC_SRCDIR) && ./contrib/download_prerequisites
$(TOOLDIR)/$(BINUTILS_ARCHIVE):
wget $(BINUTILS_URL) -O $(TOOLDIR)/$(BINUTILS_ARCHIVE)
$(TOOLDIR)/$(GCC_ARCHIVE):
wget $(GCC_URL) -O $(TOOLDIR)/$(GCC_ARCHIVE)
$(TOOLDIR):
mkdir -p $(TOOLDIR)
mkdir -p $(TOOL_SRCDIR)
mkdir -p $(TOOL_BUILDDIR)
|