Files
oplabs-mixer-daemon/Makefile
T

67 lines
1.7 KiB
Makefile

# OPLabs Mixer Daemon — build, install, manage
#
# Targets:
# build — Build the daemon binary
# test — Run core tests
# install — Install systemd service
# uninstall — Remove systemd service
# restart — Restart the systemd service
# status — Show service status
# start — Start the service
# stop — Stop the service
# logs — Tail log output
# clean — Clean build artifacts
BUILD_DIR := $(dir $(realpath $(lastword $(MAKEFILE_LIST))))build
SERVICE := oplabs-mixer-daemon.service
SERVICE_PATH := /etc/systemd/system/$(SERVICE)
.PHONY: build test install uninstall restart status start stop logs clean
# Build the daemon
build:
@mkdir -p $(BUILD_DIR)
@cd $(BUILD_DIR) && cmake .. && make -j$$(nproc)
@echo "=== Build complete: $(BUILD_DIR)/mixer-daemon ==="
# Run core tests
test:
@cd $(BUILD_DIR) && ctest --output-on-failure
# Install systemd service and start it
install: $(BUILD_DIR)/mixer-daemon
sudo cp $(SERVICE) $(SERVICE_PATH)
sudo systemctl daemon-reload
sudo systemctl enable $(SERVICE)
sudo systemctl restart $(SERVICE)
@echo "=== Service status ==="
sudo systemctl status --no-pager $(SERVICE)
# Remove systemd service
uninstall:
sudo systemctl stop $(SERVICE) || true
sudo systemctl disable $(SERVICE) || true
sudo rm -f $(SERVICE_PATH)
sudo systemctl daemon-reload
@echo "=== Uninstalled ==="
restart:
sudo systemctl restart $(SERVICE)
sudo systemctl status --no-pager $(SERVICE)
status:
sudo systemctl status --no-pager $(SERVICE)
start:
sudo systemctl start $(SERVICE)
stop:
sudo systemctl stop $(SERVICE)
logs:
sudo journalctl -u $(SERVICE) -n 100 -f
clean:
rm -rf $(BUILD_DIR)
@echo "=== Cleaned ==="