From 50392995d6e7f3a10fb74bb2f9073a4790f8933c Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Mon, 11 Mar 2024 21:40:28 -0400 Subject: simple env with basic test init program --- scripts/buildtools.mk | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 scripts/buildtools.mk (limited to 'scripts/buildtools.mk') 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) -- cgit v1.2.1