diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2024-03-11 21:40:28 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2024-03-11 21:40:28 -0400 |
commit | 50392995d6e7f3a10fb74bb2f9073a4790f8933c (patch) | |
tree | c89b067b3bacf35e092af5c31fb6e6a08921f31c /scripts/buildtools.mk | |
download | jove-env-50392995d6e7f3a10fb74bb2f9073a4790f8933c.tar.gz jove-env-50392995d6e7f3a10fb74bb2f9073a4790f8933c.tar.bz2 jove-env-50392995d6e7f3a10fb74bb2f9073a4790f8933c.zip |
Diffstat (limited to 'scripts/buildtools.mk')
-rw-r--r-- | scripts/buildtools.mk | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/scripts/buildtools.mk b/scripts/buildtools.mk new file mode 100644 index 0000000..6160d01 --- /dev/null +++ b/scripts/buildtools.mk @@ -0,0 +1,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) |