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)