mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-07 20:08:59 +02:00
This removes the convoluted steps in docker-build.sh in favour of integrating the web-build sequence into the Debian rules file explicitly. This will allow the web-build to work properly outside of the boutique Docker container we build, thus allowing it to be build properly directly on a target system with dpkg-buildpackage.
66 lines
2 KiB
Makefile
Executable file
66 lines
2 KiB
Makefile
Executable file
#! /usr/bin/make -f
|
|
CONFIG := Release
|
|
TERM := xterm
|
|
SHELL := /bin/bash
|
|
WEB_TARGET := $(CURDIR)/MediaBrowser.WebDashboard/jellyfin-web
|
|
WEB_VERSION := $(shell sed -n -e 's/^version: "\(.*\)"/\1/p' $(CURDIR)/build.yaml)
|
|
|
|
HOST_ARCH := $(shell arch)
|
|
BUILD_ARCH := ${DEB_HOST_MULTIARCH}
|
|
ifeq ($(HOST_ARCH),x86_64)
|
|
# Building AMD64
|
|
DOTNETRUNTIME := debian-x64
|
|
ifeq ($(BUILD_ARCH),arm-linux-gnueabihf)
|
|
# Cross-building ARM on AMD64
|
|
DOTNETRUNTIME := debian-arm
|
|
endif
|
|
ifeq ($(BUILD_ARCH),aarch64-linux-gnu)
|
|
# Cross-building ARM on AMD64
|
|
DOTNETRUNTIME := debian-arm64
|
|
endif
|
|
endif
|
|
ifeq ($(HOST_ARCH),armv7l)
|
|
# Building ARM
|
|
DOTNETRUNTIME := debian-arm
|
|
endif
|
|
ifeq ($(HOST_ARCH),arm64)
|
|
# Building ARM
|
|
DOTNETRUNTIME := debian-arm64
|
|
endif
|
|
|
|
export DH_VERBOSE=1
|
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
|
|
%:
|
|
dh $@
|
|
|
|
# disable "make check"
|
|
override_dh_auto_test:
|
|
|
|
# disable stripping debugging symbols
|
|
override_dh_clistrip:
|
|
|
|
override_dh_auto_build:
|
|
echo $(WEB_VERSION)
|
|
# Clone down and build Web frontend
|
|
mkdir -p $(WEB_TARGET)
|
|
wget -O web-src.tgz https://github.com/jellyfin/jellyfin-web/archive/v$(WEB_VERSION).tar.gz || wget -O web-src.tgz https://github.com/jellyfin/jellyfin-web/archive/master.tar.gz
|
|
mkdir -p $(CURDIR)/web
|
|
tar -xzf web-src.tgz -C $(CURDIR)/web/ --strip 1
|
|
cd $(CURDIR)/web/ && npm install yarn
|
|
cd $(CURDIR)/web/ && node_modules/yarn/bin/yarn install
|
|
mv $(CURDIR)/web/dist/* $(WEB_TARGET)/
|
|
# Build the application
|
|
dotnet publish --configuration $(CONFIG) --output='$(CURDIR)/usr/lib/jellyfin/bin' --self-contained --runtime $(DOTNETRUNTIME) \
|
|
"-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none" Jellyfin.Server
|
|
|
|
override_dh_auto_clean:
|
|
dotnet clean -maxcpucount:1 --configuration $(CONFIG) Jellyfin.Server || true
|
|
rm -f '$(CURDIR)/web-src.tgz'
|
|
rm -rf '$(CURDIR)/usr'
|
|
rm -rf '$(CURDIR)/web'
|
|
rm -rf '$(WEB_TARGET)'
|
|
|
|
# Force the service name to jellyfin even if we're building jellyfin-nightly
|
|
override_dh_installinit:
|
|
dh_installinit --name=jellyfin
|