.PHONY:  build build-bin generate clean go-clean check

build: build-bin

# Go build
build-bin: bin/server

generate: db/entity/autogenerated_entity.go

clean: go-clean
	rm -f ./build/server/server ./build/server/worker ./build/server/migrate_cmd

go-clean:
	go clean

swagger:
	swag init -d ./ -g api/router.go
	rm -rf docs/docs.go
test:
	gotestsum -- -p=1 ./...
# Binary build
# should use docker build instead of build options for compatible here.
bin/server: db/entity/autogenerated_entity.go  cmd/server/main.go
	GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/server/server cmd/server/main.go
	GO111MODULE=on CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/server/worker cmd/worker/main.go

bin/localserver: db/entity/autogenerated_entity.go  cmd/server/main.go
	go build -o build/server/server cmd/server/main.go
	go build -o build/server/worker cmd/worker/main.go
	go build -o build/server/migrate_cmd cmd/migrate/main.go

GENQS := PATH="../../../tools/bin:$(PATH)" go generate entity.go

../tools/bin/goqueryset:
	cd ../tools/ && make bin/goqueryset

db/entity/autogenerated_entity.go: db/entity/entity.go ../tools/bin/goqueryset
	cd db/entity && ($(GENQS) || \
	  (  go build entity.go && $(GENQS) \
	  ))

