blob: 9c8985eff110b4027eb3ac6223e2d938ccd143f9 (
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
52
53
54
55
56
57
58
59
60
61
62
63
64
|
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
|