mkfile_dir := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) BINUTILS_VERSION ?= 2.46.0 GCC_VERSION ?= 15.2.0 GDB_VERSION ?= 17.1 NEWLIB_VERSION ?= 4.6.0.20260123 ZLIB_VERSION ?= 1.3.2 NCURSES_VERSION ?= 6.4 EXPAT_VERSION ?= 2.6.2 READLINE_VERSION ?= 8.2 GMP_VERSION ?= 6.2.1 MPFR_VERSION ?= 4.1.0 MPC_VERSION ?= 1.2.1 TARGET ?= x86_64-pc-elf PLATFORM ?= x86-64 IMAGE_BUILD ?= 3 IMAGE_NAME = "registry.gitlab.ost.ch:45023/teachos/devcontainers" IMAGE_TAG = "$(PLATFORM):$(GCC_VERSION)-$(IMAGE_BUILD)" ARCHIVE_NAME = "teachos-$(PLATFORM)-$(GCC_VERSION)-$(IMAGE_BUILD)" all: toolchain_archive toolchain_archive: container_image podman create --name teachos-toolchain-archive $(IMAGE_NAME)/$(IMAGE_TAG) podman cp teachos-toolchain-archive:/opt/toolchain $(ARCHIVE_NAME) tar caf $(ARCHIVE_NAME).tar.xz $(ARCHIVE_NAME) container_image: podman pull docker.io/ubuntu:questing podman build \ --volume $(mkfile_dir)downloads:/downloads \ --build-arg BINUTILS_VERSION=$(BINUTILS_VERSION) \ --build-arg GCC_VERSION=$(GCC_VERSION) \ --build-arg GDB_VERSION=$(GDB_VERSION) \ --build-arg NEWLIB_VERSION=$(NEWLIB_VERSION) \ --build-arg TARGET=$(TARGET) \ --build-arg ZLIB_VERSION=$(ZLIB_VERSION) \ --build-arg NCURSES_VERSION=$(NCURSES_VERSION) \ --build-arg EXPAT_VERSION=$(EXPAT_VERSION) \ --build-arg READLINE_VERSION=$(READLINE_VERSION) \ --build-arg GMP_VERSION=$(GMP_VERSION) \ --build-arg MPFR_VERSION=$(MPFR_VERSION) \ --build-arg MPC_VERSION=$(MPC_VERSION) \ --tag $(IMAGE_NAME)/$(IMAGE_TAG) \ . podman tag $(IMAGE_NAME)/$(IMAGE_TAG) $(IMAGE_NAME)/$(PLATFORM):latest