|
| 1 | +############################################################################## |
| 2 | +## ArchTask-Pro GUI β Makefile (Wails v2 + React) |
| 3 | +############################################################################## |
| 4 | + |
| 5 | +BINARY := archtask-pro |
| 6 | +DESTDIR ?= /usr/local/bin |
| 7 | +POLKIT_DIR := /usr/share/polkit-1/rules.d |
| 8 | +GO := go |
| 9 | +WAILS := wails |
| 10 | + |
| 11 | +.PHONY: all dev build install uninstall clean polkit deps fmt help |
| 12 | + |
| 13 | +##ββ Default: dev mode ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 14 | +all: deps dev |
| 15 | + |
| 16 | +##ββ Install Wails CLI if missing βββββββββββββββββββββββββββββββββββββββββββββ |
| 17 | +install-wails: |
| 18 | + @command -v wails >/dev/null 2>&1 || \ |
| 19 | + $(GO) install github.com/wailsapp/wails/v2/cmd/wails@latest |
| 20 | + @echo "β Wails CLI ready" |
| 21 | + |
| 22 | +##ββ Install all dependencies βββββββββββββββββββββββββββββββββββββββββββββββββ |
| 23 | +deps: install-wails |
| 24 | + @echo "β Go dependenciesβ¦" |
| 25 | + $(GO) mod tidy |
| 26 | + @echo "β Node dependenciesβ¦" |
| 27 | + cd frontend && npm install |
| 28 | + @echo "β Dependencies ready" |
| 29 | + |
| 30 | +##ββ Dev mode: hot-reload (Go + Vite) βββββββββββββββββββββββββββββββββββββββββ |
| 31 | +dev: |
| 32 | + @echo "β Starting dev serverβ¦" |
| 33 | + $(WAILS) dev |
| 34 | + |
| 35 | +##ββ Production build βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 36 | +build: |
| 37 | + @echo "β Building production binaryβ¦" |
| 38 | + $(WAILS) build -clean -o $(BINARY) |
| 39 | + @echo "β Binary: ./build/bin/$(BINARY)" |
| 40 | + |
| 41 | +##ββ Build with debug symbols βββββββββββββββββββββββββββββββββββββββββββββββββ |
| 42 | +build-debug: |
| 43 | + $(WAILS) build -debug -o $(BINARY)-debug |
| 44 | + |
| 45 | +##ββ Install system-wide ββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 46 | +install: build |
| 47 | + install -Dm755 build/bin/$(BINARY) $(DESTDIR)/$(BINARY) |
| 48 | + @echo "β Installed to $(DESTDIR)/$(BINARY)" |
| 49 | + |
| 50 | +##ββ Install polkit rules (passwordless cpupower + systemctl) βββββββββββββββββ |
| 51 | +polkit: |
| 52 | + install -Dm644 polkit/10-archtask-pro.rules \ |
| 53 | + $(POLKIT_DIR)/10-archtask-pro.rules |
| 54 | + @echo "β Polkit rule installed" |
| 55 | + |
| 56 | +##ββ Uninstall ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 57 | +uninstall: |
| 58 | + rm -f $(DESTDIR)/$(BINARY) |
| 59 | + rm -f $(POLKIT_DIR)/10-archtask-pro.rules |
| 60 | + @echo "β Uninstalled" |
| 61 | + |
| 62 | +##ββ Format Go code βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 63 | +fmt: |
| 64 | + $(GO) fmt ./... |
| 65 | + |
| 66 | +##ββ Clean build artifacts ββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 67 | +clean: |
| 68 | + rm -rf build/ |
| 69 | + $(GO) clean -cache |
| 70 | + @echo "β Clean" |
| 71 | + |
| 72 | +##ββ Help βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 73 | +help: |
| 74 | + @echo "" |
| 75 | + @echo " ArchTask-Pro GUI Build System (Wails v2)" |
| 76 | + @echo "" |
| 77 | + @echo " make deps β install Wails CLI + Go & Node deps" |
| 78 | + @echo " make dev β hot-reload dev mode" |
| 79 | + @echo " make build β production build" |
| 80 | + @echo " make install β install binary to $(DESTDIR)" |
| 81 | + @echo " make polkit β install polkit rule (run as root)" |
| 82 | + @echo " make uninstall β remove binary + polkit rule" |
| 83 | + @echo " make clean β remove build artifacts" |
| 84 | + @echo "" |
| 85 | + @echo " Quick start:" |
| 86 | + @echo " make deps && make dev" |
| 87 | + @echo "" |
| 88 | + @echo " Full install:" |
| 89 | + @echo " make build && make install && sudo make polkit" |
| 90 | + @echo "" |
0 commit comments