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-gui: env CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -tags "kanholec,kanholec_gui$(NOWEB_TAG)" -o bin/kanholec-windows-amd64.exe ./cmd/kanholec kanholec-windows-gui-arm64: env CGO_ENABLED=1 GOOS=windows GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -tags "kanholec,kanholec_gui$(NOWEB_TAG)" -o bin/kanholec-windows-arm64.exe ./cmd/kanholec kanholec-windows-msi: kanholec-windows-gui powershell -ExecutionPolicy Bypass -File packaging/windows/build-msi.ps1 -Arch amd64 -SkipBuild kanholec-windows-msi-arm64: kanholec-windows-gui-arm64 powershell -ExecutionPolicy Bypass -File packaging/windows/build-msi.ps1 -Arch arm64 -SkipBuild .PHONY: kanholec-windows kanholec-windows-arm64 kanholec-windows-msi kanholec-windows-msi-arm64 kanholec-windows-gui kanholec-windows-gui-arm64 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