90 lines
2.5 KiB
Makefile
90 lines
2.5 KiB
Makefile
export PATH := $(PATH):`go env GOPATH`/bin
|
|
export GO111MODULE=on
|
|
LDFLAGS := -s -w
|
|
NOWEB_TAG = $(shell [ ! -d web/kanhole/dist ] || [ ! -d web/kanholec/dist ] && echo ',noweb')
|
|
KANHOLE_VERSION ?= 0.1.0
|
|
FRP_COMPAT_BASELINE_COUNT ?= 8
|
|
FRP_COMPAT_FLOOR_VERSION ?= 0.61.0
|
|
|
|
.PHONY: web kanhole-web kanholec-web kanhole kanholec kanholec-gui e2e-compatibility-smoke e2e-compatibility e2e-compatibility-floor
|
|
|
|
all: env fmt web build
|
|
|
|
build: kanhole kanholec
|
|
|
|
env:
|
|
@go version
|
|
|
|
web: kanhole-web kanholec-web
|
|
|
|
kanhole-web:
|
|
$(MAKE) -C web/frps build
|
|
|
|
kanholec-web:
|
|
$(MAKE) -C web/frpc build
|
|
|
|
fmt:
|
|
go fmt ./...
|
|
|
|
fmt-more:
|
|
gofumpt -l -w .
|
|
|
|
gci:
|
|
gci write -s standard -s default -s "prefix(kanhole/)" ./
|
|
|
|
vet:
|
|
go vet -tags "$(NOWEB_TAG)" ./...
|
|
|
|
kanhole:
|
|
env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -tags "kanhole$(NOWEB_TAG)" -o bin/kanhole ./cmd/kanhole
|
|
|
|
kanholec:
|
|
env CGO_ENABLED=0 go build -trimpath -ldflags "$(LDFLAGS)" -tags "kanholec$(NOWEB_TAG)" -o bin/kanholec ./cmd/kanholec
|
|
|
|
kanholec-windows:
|
|
env CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -tags "kanholec$(NOWEB_TAG)" -o bin/kanholec-windows-amd64.exe ./cmd/kanholec
|
|
|
|
kanholec-windows-arm64:
|
|
env CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -tags "kanholec$(NOWEB_TAG)" -o bin/kanholec-windows-arm64.exe ./cmd/kanholec
|
|
|
|
kanholec-windows-msi: kanholec-windows
|
|
wixl -o bin/kanholec-$(KANHOLE_VERSION).msi packaging/windows/kanholec.wxs 2>/dev/null \
|
|
|| { echo "wixl failed. Try: apt install msitools"; \
|
|
echo "Or on Windows: candle kanholec.wxs -o kanholec.wixobj && light kanholec.wixobj -o kanholec.msi"; \
|
|
exit 1; }
|
|
|
|
.PHONY: kanholec-windows kanholec-windows-arm64 kanholec-windows-msi
|
|
|
|
test: gotest
|
|
|
|
gotest:
|
|
go test -tags "$(NOWEB_TAG)" -v --cover ./assets/...
|
|
go test -tags "$(NOWEB_TAG)" -v --cover ./cmd/...
|
|
go test -tags "$(NOWEB_TAG)" -v --cover ./client/...
|
|
go test -tags "$(NOWEB_TAG)" -v --cover ./server/...
|
|
go test -tags "$(NOWEB_TAG)" -v --cover ./pkg/...
|
|
|
|
e2e:
|
|
./hack/run-e2e.sh
|
|
|
|
e2e-trace:
|
|
DEBUG=true LOG_LEVEL=trace ./hack/run-e2e.sh
|
|
|
|
e2e-compatibility-smoke: build
|
|
FRP_COMPAT_BASELINE_COUNT=1 ./hack/run-e2e-compatibility.sh
|
|
|
|
e2e-compatibility: build
|
|
FRP_COMPAT_BASELINE_COUNT="$(FRP_COMPAT_BASELINE_COUNT)" ./hack/run-e2e-compatibility.sh
|
|
|
|
e2e-compatibility-floor: build
|
|
FRP_COMPAT_BASELINE_VERSIONS="$(FRP_COMPAT_FLOOR_VERSION)" ./hack/run-e2e-compatibility.sh
|
|
|
|
alltest: vet gotest e2e
|
|
|
|
clean:
|
|
rm -f ./bin/kanhole
|
|
rm -f ./bin/kanholec
|
|
rm -rf ./lastversion
|
|
rm -rf ./.cache
|
|
rm -rf ./.compat
|