1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00
VILLASnode/packaging/live-iso/Makefile
Steffen Vogel 0735eb0f89 Make project REUSE compliant
And various other cleanups and harmonizations

Signed-off-by: Steffen Vogel <steffen.vogel@opal-rt.com>
2023-09-07 11:16:04 +02:00

85 lines
2.2 KiB
Makefile

# SPDX-FileCopyrightText: 2014-2023 Institute for Automation of Complex Power Systems, RWTH Aachen University
# SPDX-License-Identifier: Apache-2.0
NAME ?= VILLASlive
RELEASEVER ?= 35
RELEASEARCH ?= x86_64
DATE = $(shell date +%Y-%m-%d)
DEPLOY_PATH ?= https://files.fein-aachen.org/
DEPLOY_USER ?= webdav
ifneq ($(CI),)
VERSION = $(CI_COMMIT_REF_NAME)
else
VERSION = $(shell git describe --tags)
endif
BASE = $(NAME)-$(RELEASEARCH)-$(RELEASEVER)
IMG = $(BASE)-$(VERSION:v%=%).img
IMG_LATEST = $(BASE)-latest.iso
BASE_ISO=Fedora-Server-netinst-$(RELEASEARCH)-$(RELEASEVER)-1.2.iso
SRCDIR := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))
BUILDDIR ?= $(SRCDIR)/build
export BUILDDIR
FILES = $(shell find $(SRCDIR)/files -type f)
PATCHED_FILES = $(FILES:$(SRCDIR)/files/%=$(BUILDDIR)/patched_files/%)
# Tools
LMC = livemedia-creator \
--releasever=$(RELEASEVER) \
--ram=8192 \
--vcpus=16
# Targets
all: iso
iso: $(BUILDDIR)/$(ISO)
patched: $(PATCHED_FILES)
clean:
rm -rf $(BUILDDIR)
deploy: #$(BUILDDIR)/$(ISO)
rclone config create fein webdav url ${DEPLOY_PATH} vendor other user ${DEPLOY_USER} pass ${DEPLOY_PASS}
rclone config show
rclone copy $(BUILDDIR)/$(ISO) fein:villas/iso
$(BUILDDIR)/$(ISO): $(BUILDDIR)/iso/villas.iso
ln -s $< $@
$(BUILDDIR)/iso/%.iso: $(SRCDIR)/%.ks /tmp/$(BASE_ISO)
# livemedia-creator requires that the resultdir is not present
rm -rf $(dir $@)
# livemedia-creator uses losetup to mount the image
# When used in a Docker container, we must make sure
# that there are some usable /dev/loopX devices.
./ensure_loop.sh
$(LMC) \
--make-iso \
--iso-only \
--iso-name=$(notdir $@) \
--iso /tmp/$(BASE_ISO) \
--resultdir=$(dir $@) \
--kernel-args "inst.ks=file:/villas.ks" \
--ks $<
/tmp/$(BASE_ISO):
wget -nv -O $@ https://ftp.halifax.rwth-aachen.de/fedora/linux/releases/$(RELEASEVER)/Server/$(RELEASEARCH)/iso/$(BASE_ISO)
$(BUILDDIR)/patched_files/%: $(SRCDIR)/files/%
@mkdir -p $(dir $@)
sed -e "s/§VERSION§/$(VERSION)/g" \
-e "s/§RELEASEVER§/$(RELEASEVER)/g" \
-e "s/§RELEASEARCH§/$(RELEASEARCH)/g" \
-e "s/§DATE§/$(DATE)/g" < $< > $@
.PHONY: all deploy clean deploy patched iso
.PRECIOUS: %