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.6 EXPAT_VERSION ?= 2.7.5 READLINE_VERSION ?= 8.3 GMP_VERSION ?= 6.3.0 MPFR_VERSION ?= 4.2.2 MPC_VERSION ?= 1.3.1 TARGET ?= x86_64-pc-elf PLATFORM ?= x86-64 IMAGE_BUILD ?= 4 IMAGE_NAME = "registry.gitlab.ost.ch:45023/teachos/devcontainers" IMAGE_TAG = "$(PLATFORM):$(GCC_VERSION)-$(IMAGE_BUILD)" ARCHIVE_NAME = "teachos-$(PLATFORM)-$(GCC_VERSION)-$(IMAGE_BUILD).tar.xz" all: toolchain_archive toolchain_archive: container_image podman run --name teachos-toolchain-archive $(IMAGE_NAME)/$(IMAGE_TAG) tar -C /opt/toolchain -c -a -f /$(ARCHIVE_NAME) . podman cp teachos-toolchain-archive:/$(ARCHIVE_NAME) $(ARCHIVE_NAME) podman rm teachos-toolchain-archive 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