|
|
|
DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
|
|
|
INSTGIT := $(shell if [ "$$(id -u)" = "0" ]; then dnf -y install git; fi)
|
|
|
|
NAME := jellyfin-server
|
|
|
|
VERSION := $(shell sed -ne '/^Version:/s/.* *//p' $(DIR)/jellyfin.spec)
|
|
|
|
RELEASE := $(shell sed -ne '/^Release:/s/.* *\(.*\)%{.*}.*/\1/p' $(DIR)/jellyfin.spec)
|
|
|
|
SRPM := jellyfin-$(subst -,~,$(VERSION))-$(RELEASE)$(shell rpm --eval %dist).src.rpm
|
|
|
|
TARBALL :=$(NAME)-$(subst -,~,$(VERSION)).tar.gz
|
|
|
|
|
|
|
|
epel-7-x86_64_repos := https://packages.microsoft.com/rhel/7/prod/
|
|
|
|
|
|
|
|
fed_ver := $(shell rpm -E %fedora)
|
|
|
|
# fallback when not running on Fedora
|
|
|
|
fed_ver ?= 36
|
|
|
|
TARGET ?= fedora-$(fed_ver)-x86_64
|
|
|
|
|
|
|
|
outdir ?= $(PWD)/$(DIR)/
|
|
|
|
|
|
|
|
srpm: $(DIR)/$(SRPM)
|
|
|
|
tarball: $(DIR)/$(TARBALL)
|
|
|
|
|
|
|
|
$(DIR)/$(TARBALL):
|
|
|
|
cd $(DIR)/; \
|
|
|
|
SOURCE_DIR=.. \
|
|
|
|
WORKDIR="$${PWD}"; \
|
|
|
|
version=$(VERSION); \
|
|
|
|
tar \
|
|
|
|
--transform "s,^\.,$(NAME)-$(subst -,~,$(VERSION))," \
|
|
|
|
--exclude='.git*' \
|
|
|
|
--exclude='**/.git' \
|
|
|
|
--exclude='**/.hg' \
|
|
|
|
--exclude='**/.vs' \
|
|
|
|
--exclude='**/.vscode' \
|
|
|
|
--exclude=deployment \
|
|
|
|
--exclude='**/bin' \
|
|
|
|
--exclude='**/obj' \
|
|
|
|
--exclude='**/.nuget' \
|
|
|
|
--exclude='*.deb' \
|
|
|
|
--exclude='*.rpm' \
|
|
|
|
--exclude=$(notdir $@) \
|
|
|
|
-czf $(notdir $@) \
|
|
|
|
-C $${SOURCE_DIR} ./
|
|
|
|
|
|
|
|
$(DIR)/$(SRPM): $(DIR)/$(TARBALL) $(DIR)/jellyfin.spec
|
|
|
|
cd $(DIR)/; \
|
|
|
|
rpmbuild -bs jellyfin.spec \
|
|
|
|
--define "_sourcedir $$PWD/" \
|
|
|
|
--define "_srcrpmdir $(outdir)"
|
|
|
|
|
|
|
|
rpms: $(DIR)/$(SRPM)
|
|
|
|
mock $(addprefix --addrepo=, $($(TARGET)_repos)) \
|
|
|
|
--enable-network \
|
|
|
|
-r $(TARGET) $<
|