blob: 47bec20f0c6246ad044af2ba59c8c3e88589bc6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
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 ?= 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).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
|