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) $<