BINARY       := EMessage
BUILD_FLAGS  := -v 2 -tags webkit2_41,erelease,eclient
BUILD_DIR    := $(CURDIR)/build/bin

.PHONY: darwin-amd64 darwin-arm64 darwin-universal linux-amd64 linux-arm64 windows-amd64 windows-arm64 windows-386
.PHONY: build macbuild dev clean

build: linux-amd64 windows-amd64
macbuild: darwin-universal
	./package-darwin.sh
release:
	rm -fr public/
	go-selfupdate build/bin/EMessage $(shell head -n 1 releases)
	cp install.sh public/install.sh
	cp build/appicon.png public/appicon.png
	scp -r public/* machinetele.com:/srv/www/updater.machinetele.com/EMessage/

dev:
	wails dev -tags webkit2_41,edev,eclient

darwin-amd64:
	wails build $(BUILD_FLAGS) -platform darwin/amd64

darwin-arm64:
	wails build $(BUILD_FLAGS) -platform darwin/arm64

darwin-universal:
	wails build $(BUILD_FLAGS) -platform darwin/universal
	mkdir -p $(BUILD_DIR)/$(BINARY)
	cp $(BUILD_DIR)/$(BINARY).app/Contents/MacOS/$(BINARY) $(BUILD_DIR)/$(BINARY)/$@

linux-amd64:
	wails build $(BUILD_FLAGS) -platform linux/amd64 -o $(BINARY)/linux-amd64

linux-arm64:
	wails build $(BUILD_FLAGS) -platform linux/arm64 -o $(BINARY)/linux-arm64

windows-amd64:
	wails build $(BUILD_FLAGS) -platform windows/amd64 -o $(BINARY)/windows-amd64

windows-arm64:
	wails build $(BUILD_FLAGS) -platform windows/arm64 -o $(BINARY)/windows-arm64

windows-386:
	wails build $(BUILD_FLAGS) -platform windows/386 -o $(BINARY)/windows-386

clean:
	rm -rf $(BUILD_DIR)
