-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
41 lines (35 loc) · 1.93 KB
/
Makefile
File metadata and controls
41 lines (35 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
GIT_TAG=$(shell git describe --tags --abbrev=0)
GIT_COMMIT=$(shell git rev-parse HEAD)
GIT_BRANCH=$(shell git rev-parse --abbrev-ref HEAD)
BUILD_TIME=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
LDFLAGS=-ldflags="-s -w -extldflags '-static' -X github.com/nu11zy/rscc/internal/common/version.gitTag=$(GIT_TAG) -X github.com/nu11zy/rscc/internal/common/version.gitCommit=$(GIT_COMMIT) -X github.com/nu11zy/rscc/internal/common/version.gitBranch=$(GIT_BRANCH) -X github.com/nu11zy/rscc/internal/common/version.buildDate=$(BUILD_TIME)"
BIN_DIR=$(PWD)/bin
build: ## Build binary
@echo "Building binary"
@mkdir -p ${BIN_DIR}
@cd pkg/agent && zip -q -r ${BIN_DIR}/agent.zip .
@CGO_ENABLED=0 go build -trimpath ${LDFLAGS} -o ${BIN_DIR}/rscc cmd/rscc/main.go
build-all: ## Build binaries for platforms
@echo "Building release binaries"
@mkdir -p ${BIN_DIR}
@cd pkg/agent && zip -q -r ${BIN_DIR}/agent.zip .
@echo "Build for linux/amd64"
@GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath ${LDFLAGS} -o ${BIN_DIR}/rscc.linux.amd64 cmd/rscc/main.go
@echo "Build for linux/arm64"
@GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -trimpath ${LDFLAGS} -o ${BIN_DIR}/rscc.linux.arm64 cmd/rscc/main.go
@echo "Build for darwin/amd64"
@GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -trimpath ${LDFLAGS} -o ${BIN_DIR}/rscc.darwin.amd64 cmd/rscc/main.go
@echo "Build for darwin/arm64"
@GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -trimpath ${LDFLAGS} -o ${BIN_DIR}/rscc.darwin.arm64 cmd/rscc/main.go
gen-ent: ## Generate ent models
@echo "Generate ent models"
@go generate $(PWD)/internal/database/ent
agent-vendor: ## Update vendor for agent
@echo "Updating vendor for agent"
@cd pkg/agent && go mod tidy && go mod vendor
clean: ## Clean up
@rm -rf ${BIN_DIR}
@rm -rf agents/
@rm rscc.db
help: ## Display this help screen
@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'