2026-06-22 17:25:06 +03:00
|
|
|
# vmsig packaging — `make deb` builds the .deb over a `cmake --install` stage.
|
|
|
|
|
# Private values are NOT baked into the tree: pass them via the variables below (the
|
|
|
|
|
# defaults are neutral placeholders; CI overrides them from vars/secrets).
|
|
|
|
|
#
|
|
|
|
|
# make deb LIBVMIE_PATH=/path/to/vmie VERSION=1.2.3 \
|
|
|
|
|
# MAINTAINER="Name <addr>" DEPENDS="libc6, libvmie0"
|
|
|
|
|
|
|
|
|
|
VERSION ?= 0.0.0
|
|
|
|
|
MAINTAINER ?= vmsig packaging <root@localhost>
|
|
|
|
|
# libvmie0 is vmie's own runtime package (SONAME libvmie.so.0): libvmsig.so and
|
|
|
|
|
# libvgpu-perception.so dynamically link it, so it is a HARD runtime dependency.
|
|
|
|
|
DEPENDS ?= libc6, libvmie0
|
|
|
|
|
ARCH ?= amd64
|
|
|
|
|
LIBVMIE_PATH ?=
|
|
|
|
|
|
|
|
|
|
BUILD_DIR ?= .build-pkg
|
|
|
|
|
STAGE ?= $(CURDIR)/dist/stage
|
|
|
|
|
DIST ?= $(CURDIR)/dist
|
|
|
|
|
|
|
|
|
|
.PHONY: deb clean
|
|
|
|
|
|
|
|
|
|
# Armed package: the shipped daemon needs vmie for memctx. vmie stays an external dependency
|
2026-06-22 18:35:12 +03:00
|
|
|
# (package Depends on its runtime). vmie is found from a source tree (LIBVMIE_PATH) or, when
|
|
|
|
|
# that is empty, from the installed libvmie-dev (system / CMAKE_PREFIX_PATH) — the CI path.
|
2026-06-22 17:25:06 +03:00
|
|
|
deb:
|
|
|
|
|
rm -rf $(STAGE)
|
2026-06-22 18:35:12 +03:00
|
|
|
cmake -S . -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=Release -DVMSIG_INSTALL=ON -DVMSIG_WITH_VMIE=ON \
|
|
|
|
|
$(if $(LIBVMIE_PATH),-DLIBVMIE_PATH=$(LIBVMIE_PATH),)
|
2026-06-22 17:25:06 +03:00
|
|
|
cmake --build $(BUILD_DIR) -j
|
|
|
|
|
DESTDIR=$(STAGE) cmake --install $(BUILD_DIR) --prefix /usr
|
|
|
|
|
mkdir -p $(STAGE)/DEBIAN
|
|
|
|
|
sed -e 's/@VERSION@/$(VERSION)/' \
|
|
|
|
|
-e 's|@MAINTAINER@|$(MAINTAINER)|' \
|
|
|
|
|
-e 's/@DEPENDS@/$(DEPENDS)/' \
|
|
|
|
|
packaging/deb/control.in > $(STAGE)/DEBIAN/control
|
|
|
|
|
cp packaging/deb/conffiles $(STAGE)/DEBIAN/conffiles
|
|
|
|
|
install -m 0755 packaging/deb/postinst $(STAGE)/DEBIAN/postinst
|
|
|
|
|
install -m 0755 packaging/deb/prerm $(STAGE)/DEBIAN/prerm
|
|
|
|
|
# strip inherited setgid from staged dirs (a setgid build tree => dpkg-deb rejects DEBIAN)
|
|
|
|
|
find $(STAGE) -type d -exec chmod g-s {} +
|
|
|
|
|
mkdir -p $(DIST)
|
|
|
|
|
dpkg-deb --root-owner-group --build $(STAGE) $(DIST)/vmsig_$(VERSION)_$(ARCH).deb
|
|
|
|
|
@echo "built: $(DIST)/vmsig_$(VERSION)_$(ARCH).deb"
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
rm -rf $(BUILD_DIR) $(DIST)
|