@@ -10,18 +10,27 @@ PLATFORM?=linux/$(ARCH)
1010IMAGE_SIZE? =20G
1111PACKER_TARGET? =qemu.elemental-${ARCH}
1212REPO? =local/elemental-$(FLAVOR )
13+ BIN_REPO? =local/elemental-bin
1314TOOLKIT_REPO? =local/elemental-toolkit
1415DOCKER? =docker
15-
16- GIT_COMMIT ?= $(shell git rev-parse HEAD)
17- GIT_COMMIT_SHORT ?= $(shell git rev-parse --short HEAD)
18- GIT_TAG ?= $(shell git describe --candidates=50 --abbrev=0 --tags 2>/dev/null || echo "v0.0.1" )
19- VERSION ?= ${GIT_TAG}-g${GIT_COMMIT_SHORT}
20-
21- PKG := ./cmd ./pkg/...
22- LDFLAGS := -w -s
23- LDFLAGS += -X "github.com/rancher/elemental-toolkit/internal/version.version=${GIT_TAG}"
24- LDFLAGS += -X "github.com/rancher/elemental-toolkit/internal/version.gitCommit=${GIT_COMMIT}"
16+ BASE_OS_IMAGE? =opensuse/leap
17+ BASE_OS_VERSION? =15.5
18+
19+ GIT_COMMIT? =$(shell git rev-parse HEAD)
20+ GIT_COMMIT_SHORT? =$(shell git rev-parse --short HEAD)
21+ GIT_TAG? =$(shell git describe --candidates=50 --abbrev=0 --tags 2>/dev/null || echo "v0.0.1" )
22+ VERSION? =${GIT_TAG}-g${GIT_COMMIT_SHORT}
23+
24+ PKG: =./cmd ./pkg/...
25+ LDFLAGS: =-w -s
26+ LDFLAGS+ =-X "github.com/rancher/elemental-toolkit/internal/version.version=${GIT_TAG}"
27+ LDFLAGS+ =-X "github.com/rancher/elemental-toolkit/internal/version.gitCommit=${GIT_COMMIT}"
28+
29+ # For RISC-V 64bit support
30+ ifeq ($(PLATFORM ) ,linux/riscv64)
31+ BASE_OS_IMAGE =registry.opensuse.org/opensuse/factory/riscv/images/opensuse/tumbleweed
32+ BASE_OS_VERSION =latest
33+ endif
2534
2635# default target
2736.PHONY : all
@@ -35,7 +44,21 @@ include make/Makefile.test
3544
3645.PHONY : build
3746build :
38- $(DOCKER ) build --platform ${PLATFORM} ${DOCKER_ARGS} --build-arg ELEMENTAL_VERSION=${GIT_TAG} --build-arg ELEMENTAL_COMMIT=${GIT_COMMIT} --target elemental -t ${TOOLKIT_REPO} :${VERSION} .
47+ $(DOCKER ) build --platform $(PLATFORM ) ${DOCKER_ARGS} \
48+ --build-arg ELEMENTAL_VERSION=$(GIT_TAG ) \
49+ --build-arg ELEMENTAL_COMMIT=$(GIT_COMMIT ) \
50+ --target elemental-bin -t $(BIN_REPO ) :$(VERSION ) .
51+ $(DOCKER ) build --platform $(PLATFORM ) ${DOCKER_ARGS} \
52+ --build-arg BIN_REPO=$(BIN_REPO ) \
53+ --build-arg VERSION=$(VERSION ) \
54+ --build-arg BASE_OS_IMAGE=$(BASE_OS_IMAGE ) \
55+ --build-arg BASE_OS_VERSION=$(BASE_OS_VERSION ) \
56+ --file Dockerfile.toolkit \
57+ --target elemental-toolkit -t $(TOOLKIT_REPO ) :$(VERSION ) .
58+
59+ .PHONY : push-bin
60+ push-bin :
61+ $(DOCKER ) push $(BIN_REPO ) :$(VERSION )
3962
4063.PHONY : push-toolkit
4164push-toolkit :
@@ -47,7 +70,11 @@ build-cli:
4770
4871.PHONY : build-os
4972build-os : build
50- $(DOCKER ) build examples/$(FLAVOR ) --platform ${PLATFORM} ${DOCKER_ARGS} --build-arg TOOLKIT_REPO=$(TOOLKIT_REPO ) --build-arg VERSION=$(VERSION ) --build-arg REPO=$(REPO ) -t $(REPO ) :$(VERSION )
73+ $(DOCKER ) build --platform ${PLATFORM} ${DOCKER_ARGS} \
74+ --build-arg TOOLKIT_REPO=$(TOOLKIT_REPO ) \
75+ --build-arg VERSION=$(VERSION ) \
76+ --build-arg REPO=$(REPO ) -t $(REPO ) :$(VERSION ) \
77+ examples/$(FLAVOR )
5178
5279.PHONY : push-os
5380push-os :
@@ -70,9 +97,8 @@ build-disk: build-os
7097 @echo Building ${ARCH} disk
7198 mkdir -p $(ROOT_DIR ) /build
7299 $(DOCKER ) run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(ROOT_DIR ) /build:/build \
73- --entrypoint /usr/bin/elemental \
74- ${TOOLKIT_REPO} :${VERSION} --debug build-disk --unprivileged --expandable -n elemental-$(FLAVOR ) .$(ARCH ) --local \
75- --squash-no-compression -o /build ${REPO} :${VERSION}
100+ --entrypoint /usr/bin/elemental ${REPO} :${VERSION} --debug build-disk --unprivileged --expandable -n elemental-$(FLAVOR ) .$(ARCH ) \
101+ --local --squash-no-compression -o /build ${REPO} :${VERSION}
76102 dd if=$(ROOT_DIR ) /build/elemental-$(FLAVOR ) .$(ARCH ) .raw of=$(ROOT_DIR ) /build/elemental-$(FLAVOR ) .$(ARCH ) .img conv=notrunc
77103 qemu-img convert -O qcow2 $(ROOT_DIR ) /build/elemental-$(FLAVOR ) .$(ARCH ) .img $(ROOT_DIR ) /build/elemental-$(FLAVOR ) .$(ARCH ) .qcow2
78104 qemu-img resize $(ROOT_DIR ) /build/elemental-$(FLAVOR ) .$(ARCH ) .qcow2 $(DISKSIZE )
0 commit comments