mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-10-04 12:02:33 +02:00
1.9 KiB
1.9 KiB
description, applyTo
| description | applyTo |
|---|---|
| Use when editing the Makefile, understanding build targets, or working with MAIN vs LoadBalancer build configurations. | Makefile |
Makefile & Build — XC_VM
Build Variants
- MAIN (
xc_vm.tar.gz): Full application — admin panel + streaming + all modules. Same archive for install and update. - LoadBalancer (
loadbalancer.tar.gz): Streaming-only subset — admin dirs stripped. Same archive for install and update. - Installer (
XC_VM.zip): Distribution package with install script + xc_vm.tar.gz inside.
Build Targets
make new— clean dist/ directorymake main— build MAIN archive (includesdelete_files_listfor update support)make lb— build LB archive (includeslb_delete_files_listfor update support)- Pass
LAST_TAG=...to control deleted-files diff base (auto-detected from GitHub API if omitted)
Update Architecture
- A single archive is used for both clean install and update
- Dirs skipped during update are defined by the hardcoded
UPDATE_EXCLUDE_DIRSlist insidesrc/update - The update script (
src/update) extracts to /tmp, removes excluded dirs, then copies remaining files over the live installation migrations/deleted_files.txt(generated from git diff) lists files removed since last release
Key Variables
MAIN_DIR = ./src— full application sourceUPDATE_EXCLUDE_DIRS— runtime list insrc/updatefor dirs excluded during update (binaries, user data, config)LB_DIRS— subset of directories included in LoadBalancer buildLB_DIRS_TO_REMOVE— admin-only paths stripped from LB builds
Rules
- Any new directory under
src/that is streaming-relevant must be added toLB_DIRS - Any new admin-only directory must be added to
LB_DIRS_TO_REMOVE - Version hashes are generated into
hashes.md5 - Do NOT change archive naming convention without updating CI workflows