BINARY_NAME=web-news BUILD_DIR=bin .PHONY: help install dev build preview check lint format clean docker-build docker-run release build-linux-amd64 build-linux-arm64 build-linux-armv6 build-linux-armv7 build-windows-amd64 build-darwin-amd64 build-darwin-arm64 build-freebsd-amd64 android-build frontend-build help: @echo 'Usage: make [target]' @echo '' @echo 'Available targets:' @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " %-15s %s\n", $$1, $$2}' $(MAKEFILE_LIST) android-build: build pnpm cap sync android cd android && ./gradlew assembleDebug mkdir -p $(BUILD_DIR)/android cp android/app/build/outputs/apk/debug/app-debug.apk $(BUILD_DIR)/android/web-news-debug.apk dev: pnpm install (command -v air > /dev/null && air || go run main.go & pnpm run dev) frontend-build: pnpm install pnpm run build build: frontend-build mkdir -p $(BUILD_DIR) CGO_ENABLED=0 go build -ldflags="-s -w" -o $(BUILD_DIR)/$(BINARY_NAME) main.go release: build mkdir -p $(BUILD_DIR) @$(MAKE) build-linux-amd64 @$(MAKE) build-linux-arm64 @$(MAKE) build-linux-armv6 @$(MAKE) build-linux-armv7 @$(MAKE) build-windows-amd64 @$(MAKE) build-darwin-amd64 @$(MAKE) build-darwin-arm64 @$(MAKE) build-freebsd-amd64 build-linux-amd64: GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-amd64 main.go build-linux-arm64: GOOS=linux GOARCH=arm64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-arm64 main.go build-linux-armv6: GOOS=linux GOARCH=arm GOARM=6 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-armv6 main.go build-linux-armv7: GOOS=linux GOARCH=arm GOARM=7 go build -o $(BUILD_DIR)/$(BINARY_NAME)-linux-armv7 main.go build-windows-amd64: GOOS=windows GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-windows-amd64.exe main.go build-darwin-amd64: GOOS=darwin GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-amd64 main.go build-darwin-arm64: GOOS=darwin GOARCH=arm64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-darwin-arm64 main.go build-freebsd-amd64: GOOS=freebsd GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY_NAME)-freebsd-amd64 main.go docker-build: docker build \ --build-arg BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ') \ --build-arg VCS_REF=$(shell git rev-parse --short HEAD) \ --build-arg VERSION=$(shell node -p "require('./package.json').version") \ -t $(BINARY_NAME) . docker-run: docker run -p 8080:8080 $(BINARY_NAME) desktop-build: frontend-build mkdir -p desktop/frontend_dist rm -rf desktop/frontend_dist/* cp -r build/* desktop/frontend_dist/ cd desktop && wails build -s -tags webkit2_41 desktop-windows: frontend-build mkdir -p desktop/frontend_dist rm -rf desktop/frontend_dist/* cp -r build/* desktop/frontend_dist/ cd desktop && wails build -platform windows/amd64 -s desktop-darwin: frontend-build mkdir -p desktop/frontend_dist rm -rf desktop/frontend_dist/* cp -r build/* desktop/frontend_dist/ cd desktop && wails build -platform darwin/universal -s desktop-dev: frontend-build mkdir -p desktop/frontend_dist rm -rf desktop/frontend_dist/* cp -r build/* desktop/frontend_dist/ cd desktop && wails dev clean: rm -rf .svelte-kit build node_modules/.vite dist package web-news tmp $(BUILD_DIR) android/app/build android/build