mkfile_dir := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) DEPENDS=.depends.mk 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 REGISTRY ?= registry.gitlab.ost.ch:45023 IMAGE_BUILD ?= 4 IMAGE_BASENAME = teachos/devcontainers IMAGE_NAME = $(REGISTRY)/$(IMAGE_BASENAME) IMAGE_TAG = $(PLATFORM):$(GCC_VERSION)-$(IMAGE_BUILD) ARCHIVE_NAME = teachos-$(PLATFORM)-$(GCC_VERSION)-$(IMAGE_BUILD).tar .PHONY: all clean container_image all: $(ARCHIVE_NAME).xz clean: rm -f $(ARCHIVE_NAME) rm -f $(ARCHIVE_NAME).xz $(ARCHIVE_NAME): container_image podman run --rm --volume $(mkfile_dir):/mnt $(IMAGE_NAME)/$(IMAGE_TAG) tar -C /opt/toolchain -c -a -f /mnt/$(ARCHIVE_NAME) . $(ARCHIVE_NAME).xz: $(ARCHIVE_NAME) xz --keep --force --compress -9 --check=sha256 $(ARCHIVE_NAME) container_image: Containerfile podman pull docker.io/ubuntu:questing podman build \ --volume $(mkfile_dir)downloads:/downloads \ --build-arg IMAGE_BUILD=$(IMAGE_BUILD) \ --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