.PHONY: default release clean build-app build-server dist dist-zip sums test

BUILD_DIR := build
DIST := dist
TARGET_DIR := scrcpy

VERSION := $(shell git describe --tags --always)
TARGET := $(TARGET_DIR)-$(VERSION).zip

default:
	@echo 'You must specify a target. Try: make release'

release: clean dist-zip sums

clean:
	rm -rf "$(BUILD_DIR)" "$(DIST)"
	+$(MAKE) -C server clean

build-app:
	[ -d "$(BUILD_DIR)" ] || ( mkdir "$(BUILD_DIR)" && meson app "$(BUILD_DIR)" --buildtype release )
	ninja -C "$(BUILD_DIR)"

build-server:
	+$(MAKE) -C server clean
	+$(MAKE) -C server jar

dist: build-app build-server
	mkdir -p "$(DIST)/$(TARGET_DIR)"
	cp server/scrcpy-server.jar "$(DIST)/$(TARGET_DIR)/"
	cp build/scrcpy "$(DIST)/$(TARGET_DIR)/"

dist-zip: dist
	cd "$(DIST)"; \
		zip -r "$(TARGET)" "$(TARGET_DIR)"

sums:
	cd "$(DIST)"; \
		sha256sum *.zip > SHA256SUM.txt

test:
	+$(MAKE) -C server test
	ninja -C "$(BUILD_DIR)" test