47 lines
993 B
Makefile
47 lines
993 B
Makefile
GO ?= go
|
|||
|
|
NPM ?= npm
|
||
|
|
|
||
|
|
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
|
||
|
|
COMMIT ?= $(shell git rev-parse --short HEAD 2>/dev/null)
|
||
|
|
LDFLAGS := -s -w \
|
||
|
|
-X github.com/apernet/OpenGFW/cmd.appVersion=$(VERSION) \
|
||
|
|
-X github.com/apernet/OpenGFW/cmd.appCommit=$(COMMIT)
|
||
|
|
|
||
|
|
FRONTEND := web/frontend
|
||
|
|
|
||
|
|
.PHONY: all
|
||
|
|
all: web build
|
||
|
|
|
||
|
|
## build: build the OpenGFW binary (embeds the web UI in web/dist)
|
||
|
|
.PHONY: build
|
||
|
|
build:
|
||
|
|
$(GO) build -o OpenGFW -ldflags "$(LDFLAGS)" .
|
||
|
|
|
||
|
|
## web: build the web UI into web/dist
|
||
|
|
.PHONY: web
|
||
|
|
web:
|
||
|
|
cd $(FRONTEND) && $(NPM) install && $(NPM) run build
|
||
|
|
|
||
|
|
## web-dev: run the Vite dev server against a local OpenGFW instance
|
||
|
|
.PHONY: web-dev
|
||
|
|
web-dev:
|
||
|
|
cd $(FRONTEND) && $(NPM) run dev
|
||
|
|
|
||
|
|
## devserver: serve the web UI with synthetic data (works on any OS)
|
||
|
|
.PHONY: devserver
|
||
|
|
devserver:
|
||
|
|
$(GO) run ./web/devserver
|
||
|
|
|
||
|
|
.PHONY: test
|
||
|
|
test:
|
||
|
|
$(GO) test ./...
|
||
|
|
|
||
|
|
.PHONY: vet
|
||
|
|
vet:
|
||
|
|
$(GO) vet ./...
|
||
|
|
|
||
|
|
.PHONY: clean
|
||
|
|
clean:
|
||
|
|
rm -f OpenGFW
|
||
|
|
rm -rf $(FRONTEND)/node_modules
|