68 lines
2.0 KiB
Makefile
68 lines
2.0 KiB
Makefile
PREFIX ?= $(shell pwd)/bin/
|
|
GO ?= go
|
|
FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH)))
|
|
GOHOSTOS ?= $(shell $(GO) env GOHOSTOS)
|
|
GOHOSTARCH ?= $(shell $(GO) env GOHOSTARCH)
|
|
BUILDTIME = ${shell TZ=Asia/Shanghai date +%Y-%m-%dT%H:%M:%S%z}
|
|
GOBUILD = CGO_ENABLED=0 go build -trimpath
|
|
|
|
export GOBIN=${PREFIX}/.bin
|
|
# protoc v4.22.0
|
|
export PROTOC_VERSION=22.0
|
|
|
|
ifdef VERSION
|
|
VERSION=${VERSION}
|
|
else
|
|
VERSION=$(shell git describe --tags --always --dirty="-dirty")
|
|
endif
|
|
|
|
ifdef GITCOMMIT
|
|
GITCOMMIT=${GITCOMMIT}
|
|
else
|
|
GITCOMMIT=$(shell git rev-parse HEAD)
|
|
endif
|
|
|
|
# Go Reproducible Build
|
|
ifdef REPRODUCIBLE_BUILD
|
|
GOBUILD=CGO_ENABLED=0 go build -trimpath -ldflags=-buildid=
|
|
BUILDTIME=0
|
|
endif
|
|
|
|
LDFLAG=-ldflags "-X github.com/ifooth/apollo/pkg/version.Version=${VERSION} \
|
|
-X github.com/ifooth/apollo/pkg/version.GitCommit=${GITCOMMIT} \
|
|
-X github.com/ifooth/apollo/pkg/version.BuildTime=${BUILDTIME}"
|
|
|
|
.PHONY: ini
|
|
init:
|
|
@echo Download protoc
|
|
@mkdir -p ${PREFIX}/.bin
|
|
@cd ${PREFIX}/.bin && \
|
|
rm -rf protoc-*.zip* && \
|
|
wget -q https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip && \
|
|
unzip -o protoc-${PROTOC_VERSION}-linux-x86_64.zip && \
|
|
mv -f bin/protoc . && \
|
|
rm -rf protoc-*.zip* readme.txt bin
|
|
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1
|
|
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0
|
|
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@v2.15.2
|
|
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@v2.15.2
|
|
go install github.com/swaggo/swag/cmd/swag@v1.8.10
|
|
|
|
.PHONY: tidy
|
|
tidy:
|
|
@go mod tidy
|
|
|
|
.PHONY: test
|
|
test:
|
|
@echo ">> test not support"
|
|
|
|
.PHONY: benchmark
|
|
benchmark:
|
|
@echo ">> benchmark not support"
|
|
|
|
.PHONY: swagger
|
|
swagger:
|
|
@swag init --outputTypes go,json -g pkg/apis/routes.go --exclude ./
|
|
@swag fmt -g pkg/apis/routes.go --exclude ./
|
|
|