-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
72 lines (50 loc) · 1.85 KB
/
Makefile
File metadata and controls
72 lines (50 loc) · 1.85 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
NAME=csv-to-ical
BIN_DIR=bin
VERSION=$(shell cat VERSION)
BUILD_TIME=$(shell date -u)
COMMIT_HASH=$(shell git rev-parse --short HEAD)
GO_BUILD=CGO_ENABLED=0 go build -trimpath -ldflags \
'-X "github.com/fantasticmao/csv-to-ical/common.Version=$(VERSION)" \
-X "github.com/fantasticmao/csv-to-ical/common.BuildTime=$(BUILD_TIME)" \
-X "github.com/fantasticmao/csv-to-ical/common.CommitHash=$(COMMIT_HASH)" \
-w -s'
PLATFORM_LIST=darwin-amd64 darwin-arm64 linux-amd64 linux-armv5 linux-armv6 linux-armv7 linux-armv8 \
windows-amd64 windows-arm64
default: build
.PHONY: default
build: darwin-amd64 linux-amd64 windows-amd64 # Most used
build-all: $(PLATFORM_LIST)
build-docker:
$(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
.PHONY: build build-all build-docker
darwin-amd64:
GOARCH=amd64 GOOS=darwin $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
darwin-arm64:
GOARCH=arm64 GOOS=darwin $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
linux-amd64:
GOARCH=amd64 GOOS=linux $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
linux-armv5:
GOARCH=arm GOOS=linux GOARM=5 $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
linux-armv6:
GOARCH=arm GOOS=linux GOARM=6 $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
linux-armv7:
GOARCH=arm GOOS=linux GOARM=7 $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
linux-armv8:
GOARCH=arm64 GOOS=linux $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@
windows-amd64:
GOARCH=amd64 GOOS=windows $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@.exe
windows-arm64:
GOARCH=arm64 GOOS=windows $(GO_BUILD) -o $(BIN_DIR)/$(NAME)-$@.exe
test:
go test ./... -race -coverprofile=coverage.txt -covermode=atomic -v
.PHONY: test
clean:
rm $(BIN_DIR)/*
.PHONY: clean
help:
@echo 'make clean: clean project'
@echo 'make test: compile and test project'
@echo 'make [build]: compile and build project'
@echo 'make build-all: compile and build project for all platform'
@echo 'make build-docker: compile and build project for Docker'
.PHONY: clean