# Makefile
.PHONY: deploy build-all

# Project name / binary name
BINARY_NAME := furnacecheck

# Default target
all: build

# Run go app from CLI
run:
	go run .

install-linux:
	sudo apt install libopencv-dev

install-macos:
	brew install opencv

# Build for the host system
build:
	go build -tags customenv -o build/$(BINARY_NAME) .

# Cross-compile for macOS ARM64
build-macos-arm64:
	CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o build/$(BINARY_NAME)-macos-arm64 .

# Cross-compile for Linux AMD64
build-linux-amd64:
	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/$(BINARY_NAME)-linux-amd64 .

# Build all targets
build-all: build-macos-arm64 build-linux-amd64

deploy: build-all
	scp build/furnacecheck-linux-amd64 mundilfari.local:/usr/local/bin/furnacecheck.new
	ssh mundilfari.local \
		"sudo mv /usr/local/bin/furnacecheck.new /usr/local/bin/furnacecheck && \
		 sudo systemctl restart furnacecheck"

# Clean build artifacts
clean:
	rm -rf build

.PHONY: all build build-macos-arm64 build-linux-amd64 build-all clean
