Files
BackOne/make/install-addons.mk
2026-07-02 09:12:57 +07:00

120 lines
5.4 KiB
Makefile

# BackOne addon install paths and targets (linux, mac, windows).
# Included from make-linux.mk, make-mac.mk, and make-windows.mk.
ifndef BACKONE_PLATFORM
ifeq ($(OSTYPE),Darwin)
BACKONE_PLATFORM := mac
else ifeq ($(OSTYPE),Linux)
BACKONE_PLATFORM := linux
else ifeq ($(OS),Windows_NT)
BACKONE_PLATFORM := windows
else
BACKONE_PLATFORM := linux
endif
endif
RESOLVE_INSTALL_PATH := BACKONE_PLATFORM='$(BACKONE_PLATFORM)' bash pkg/common/resolve-install-path.sh
BACKONE_HOME_DEFAULT := $(shell $(RESOLVE_INSTALL_PATH) home)
BACKONE_ADDONS_DEFAULT := $(shell $(RESOLVE_INSTALL_PATH) addons)
BACKONE_BIN_DEFAULT := $(shell $(RESOLVE_INSTALL_PATH) bin)
# DESTDIR prefixes packaging staging; empty DESTDIR installs to live BackOne paths.
BACKONE_HOME_PREFIX ?= $(DESTDIR)/$(patsubst /%,%,$(BACKONE_HOME_DEFAULT))
BACKONE_ADDONS_PREFIX ?= $(DESTDIR)/$(patsubst /%,%,$(BACKONE_ADDONS_DEFAULT))
BACKONE_BIN_PREFIX ?= $(DESTDIR)/$(patsubst /%,%,$(BACKONE_BIN_DEFAULT))
ADDON_VERSION ?= $(shell cat debian/version 2>/dev/null || echo 1.17.1)
install-app-shell: FORCE
mkdir -p "$(BACKONE_HOME_PREFIX)/app"
cp -r app-shell/dist/* "$(BACKONE_HOME_PREFIX)/app/"
mkdir -p "$(BACKONE_HOME_PREFIX)"
printf '{}' > "$(BACKONE_HOME_PREFIX)/contacts.json"
install-app-tray: FORCE
ifeq ($(BACKONE_PLATFORM),linux)
mkdir -p "$(BACKONE_BIN_PREFIX)"
mkdir -p "$(BACKONE_ADDONS_PREFIX)/app-tray"
mkdir -p "$(DESTDIR)/usr/share/applications"
mkdir -p "$(DESTDIR)/etc/xdg/autostart"
cp app-tray/backone-tray.py "$(BACKONE_BIN_PREFIX)/backone-tray"
chmod 755 "$(BACKONE_BIN_PREFIX)/backone-tray"
cp app-tray/addon.json "$(BACKONE_ADDONS_PREFIX)/app-tray/"
cp app-tray/backone-tray.desktop "$(DESTDIR)/usr/share/applications/"
cp app-tray/backone-tray-autostart.desktop "$(DESTDIR)/etc/xdg/autostart/"
else
@echo "install-app-tray: skipped on $(BACKONE_PLATFORM) (Linux-only)"
endif
install-addon-comms-core: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/comms-core"
cp addons/comms-core/addon.json "$(BACKONE_ADDONS_PREFIX)/comms-core/"
cp addons/comms-core/schema.sql "$(BACKONE_ADDONS_PREFIX)/comms-core/"
install-addon-webhub: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/webhub"
cp addons/webhub/addon.json "$(BACKONE_ADDONS_PREFIX)/webhub/"
cp addons/webhub/backone-webhub "$(BACKONE_ADDONS_PREFIX)/webhub/"
chmod 755 "$(BACKONE_ADDONS_PREFIX)/webhub/backone-webhub"
ifeq ($(BACKONE_PLATFORM),linux)
mkdir -p "$(DESTDIR)/lib/systemd/system"
cp addons/webhub/backone-webhub.service "$(DESTDIR)/lib/systemd/system/backone-webhub.service"
endif
install-addon-voice: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/voice"
mkdir -p "$(BACKONE_HOME_PREFIX)/app/addons/voice"
cp addons/voice/addon.json "$(BACKONE_ADDONS_PREFIX)/voice/"
cp addons/voice/frontend/index.js "$(BACKONE_HOME_PREFIX)/app/addons/voice/"
install-addon-video: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/video"
mkdir -p "$(BACKONE_HOME_PREFIX)/app/addons/video"
cp addons/video/addon.json "$(BACKONE_ADDONS_PREFIX)/video/"
cp addons/video/frontend/index.js "$(BACKONE_HOME_PREFIX)/app/addons/video/"
install-addon-chat: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/chat"
mkdir -p "$(BACKONE_HOME_PREFIX)/app/addons/chat"
mkdir -p "$(BACKONE_ADDONS_PREFIX)/chat/attachments"
cp addons/chat/addon.json "$(BACKONE_ADDONS_PREFIX)/chat/"
cp addons/chat/frontend/index.js "$(BACKONE_HOME_PREFIX)/app/addons/chat/"
install-addon-secure-chat: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/secure-chat"
mkdir -p "$(BACKONE_HOME_PREFIX)/app/addons/secure-chat"
cp addons/secure-chat/addon.json "$(BACKONE_ADDONS_PREFIX)/secure-chat/"
cp addons/secure-chat/frontend/index.js "$(BACKONE_HOME_PREFIX)/app/addons/secure-chat/"
install-addon-updater: FORCE
mkdir -p "$(BACKONE_ADDONS_PREFIX)/updater/migrations"
cp addons/updater/addon.json "$(BACKONE_ADDONS_PREFIX)/updater/"
cp addons/updater/backone-updater "$(BACKONE_ADDONS_PREFIX)/updater/"
cp addons/updater/rebuild-addon-manifest.sh "$(BACKONE_ADDONS_PREFIX)/updater/"
cp addons/updater/merge-local-conf.sh "$(BACKONE_ADDONS_PREFIX)/updater/"
cp addons/updater/sync-authtoken.sh "$(BACKONE_ADDONS_PREFIX)/updater/"
cp pkg/common/platform-paths.sh "$(BACKONE_ADDONS_PREFIX)/updater/"
chmod 755 "$(BACKONE_ADDONS_PREFIX)/updater/backone-updater"
chmod 755 "$(BACKONE_ADDONS_PREFIX)/updater/rebuild-addon-manifest.sh"
chmod 755 "$(BACKONE_ADDONS_PREFIX)/updater/merge-local-conf.sh"
chmod 755 "$(BACKONE_ADDONS_PREFIX)/updater/sync-authtoken.sh"
cp addons/updater/migrations/* "$(BACKONE_ADDONS_PREFIX)/updater/migrations/"
mkdir -p "$(BACKONE_BIN_PREFIX)"
ifeq ($(BACKONE_PLATFORM),linux)
ln -sf ../lib/backone/addons/updater/backone-updater "$(BACKONE_BIN_PREFIX)/backone-updater"
else
cp addons/updater/backone-updater "$(BACKONE_BIN_PREFIX)/backone-updater"
chmod 755 "$(BACKONE_BIN_PREFIX)/backone-updater"
endif
install-addon-manifest: install-addon-comms-core install-addon-webhub install-addon-voice install-addon-video install-addon-chat install-addon-secure-chat install-addon-updater FORCE
ifeq ($(DESTDIR),)
bash addons/updater/rebuild-addon-manifest.sh || true
else
BACKONE_HOME="$(BACKONE_HOME_PREFIX)" BACKONE_ADDONS_DIR="$(BACKONE_ADDONS_PREFIX)" \
bash addons/updater/rebuild-addon-manifest.sh || true
endif
install-addons: install-app-shell install-app-tray install-addon-comms-core install-addon-webhub install-addon-voice install-addon-video install-addon-chat install-addon-secure-chat install-addon-updater install-addon-manifest FORCE