| 
					
				 | 
			
			
				@@ -0,0 +1,44 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DEFAULT_GOAL := all 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DELETE_ON_ERROR: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SUFFIXES: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+include .env 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+PROJECT := $(shell cat go.mod | grep '^module\s' | cut -b 8-) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export VERSION ?= $(shell date -u '+%F')-snapshot 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export DEBUG ?= 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+BUILD_TIME := $(shell date -u '+%F_%T') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+COMMIT_HASH := $(shell git rev-parse --short HEAD) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+LDFLAGS := '-linkmode external -w -s -extldflags "-static" -X $(PROJECT).Version=$(VERSION)' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+GCFLAGS := 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ifeq ($(DEBUG),1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	GCFLAGS = "all=-N -l" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PHONY: all 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+all: gen deps fmt test 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PHONY: gen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+gen: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-@echo "-> $@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-@echo "=== Generate strategies" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	$(foreach file, $(wildcard ./strategy/*.go), CGO_ENABLED=1 go build -ldflags=$(LDFLAGS) -buildmode=plugin -gcflags=$(GCFLAGS) -o $(file).so $(file);) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PHONY: deps 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+deps: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-@echo "-> $@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	go mod tidy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PHONY: fmt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fmt: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-@echo "-> $@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-go fmt $(shell go list ./...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PHONY: test 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+test: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-@echo "-> $@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	CGO_ENABLED=1 go test $(shell go list ./...) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	-go vet $(shell go list ./...) 
			 |