BINARY := rtsp-streamer PKG := ./cmd/rtsp-streamer BINDIR := bin # Build metadata baked into the binary (see `rtsp-streamer version`). VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev) COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null || echo none) DATE ?= $(shell date -u +%Y-%m-%dT%H:%M:%SZ) LDFLAGS := -s -w \ -X main.version=$(VERSION) \ -X main.commit=$(COMMIT) \ -X main.date=$(DATE) # Install location. Override with `make install PREFIX=/opt`. PREFIX ?= /usr/local DESTBIN := $(PREFIX)/bin/$(BINARY) # Use sudo automatically when not already root, so `make install` / # `make deploy` work whether or not you prefix them with sudo. SUDO := $(shell [ "$$(id -u)" -eq 0 ] || echo sudo) # The kiosk session unit restarted by `make deploy`. KIOSK_UNIT ?= getty@tty1 .PHONY: all build pi pi32 test vet clean run-tui install deploy uninstall all: build ## build: compile for the host platform (native arch) build: go build -ldflags '$(LDFLAGS)' -o $(BINDIR)/$(BINARY) $(PKG) ## pi: cross-compile for Raspberry Pi 4 running a 64-bit OS (arm64) pi: GOOS=linux GOARCH=arm64 go build -ldflags '$(LDFLAGS)' -o $(BINDIR)/$(BINARY)-arm64 $(PKG) ## pi32: cross-compile for a 32-bit Pi OS (armv7) pi32: GOOS=linux GOARCH=arm GOARM=7 go build -ldflags '$(LDFLAGS)' -o $(BINDIR)/$(BINARY)-armv7 $(PKG) ## install: build for this machine and copy the binary to $(PREFIX)/bin ## (auto-sudo). This is the location the running daemon uses. install: build $(SUDO) install -m 0755 $(BINDIR)/$(BINARY) $(DESTBIN) @echo "installed -> $(DESTBIN)" ## deploy: install, then restart the kiosk session so the wall picks it up deploy: install $(SUDO) systemctl restart $(KIOSK_UNIT) @echo "restarted $(KIOSK_UNIT); run 'rtsp-streamer status' to check" ## uninstall: remove the installed binary uninstall: $(SUDO) rm -f $(DESTBIN) @echo "removed $(DESTBIN)" ## test: run unit tests test: go test ./... ## vet: run go vet vet: go vet ./... ## run-tui: launch the configurator against a scratch config run-tui: build RTSP_STREAMER_CONFIG=/tmp/rtsp-streamer.yaml $(BINDIR)/$(BINARY) tui ## clean: remove build artifacts clean: rm -rf $(BINDIR)