-
-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathMakefile
More file actions
70 lines (54 loc) · 2.54 KB
/
Copy pathMakefile
File metadata and controls
70 lines (54 loc) · 2.54 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
# Use vendored dependencies
GOFLAGS=-mod=vendor
# build directory
BUILD_DIR = build
# get version from git
VERSION = $(shell git describe --tags --always 2>/dev/null || echo "dev")
LDFLAGS = "-X 'wiki-go/internal/version.Version=$(VERSION)' -s -w -extldflags=-static -linkmode 'external'"
BUILDTAGS = -tags netgo,usergo -trimpath -gcflags=all="-l -B -C"
all:
@echo "Build this program for your architecture:"
@echo " - make linux_amd64"
@echo " - make linux_386"
@echo " - make linux_arm64"
@echo " - make linux_arm5"
@echo " - make linux_arm6"
@echo " - make linux_arm7"
@echo " - make linux_s390x"
@echo " - make windows_amd64"
@echo " - make windows_arm64"
@echo " - make macos_arm64"
prepare:
mkdir -p $(BUILD_DIR)
find $(BUILD_DIR) -mindepth 1 -and -not -name ".gitkeep" -and -not -path $(BUILD_DIR)/data -and -not -path $(BUILD_DIR)/data/* -and -delete
@echo "Building version: " $(VERSION)
linux_amd64: prepare
@echo "Building for Linux (amd64)..."
GOOS=linux GOARCH=amd64 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-amd64 .
linux_386: prepare
@echo "Building for Linux (386)..."
GOOS=linux GOARCH=386 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-386 .
linux_arm64: prepare
@echo "Building for Linux (arm64)..."
GOOS=linux GOARCH=arm64 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-arm64 .
linux_arm5: prepare
@echo "Building for Linux ARMv5..."
GOOS=linux GOARCH=arm GOARM=5 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-armv5 .
linux_arm6: prepare
@echo "Building for Linux ARMv6..."
GOOS=linux GOARCH=arm GOARM=6 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-armv6 .
linux_arm7: prepare
@echo "Building for Linux ARMv7..."
GOOS=linux GOARCH=arm GOARM=7 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-armv7 .
linux_s390x: prepare
@echo "Building for Linux (s390x)..."
GOOS=linux GOARCH=s390x go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-linux-s390x .
windows_amd64: prepare
@echo "Building for Windows (amd64)..."
GOOS=windows GOARCH=amd64 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-windows-amd64.exe .
windows_arm64: prepare
@echo "Building for Windows (arm64)..."
GOOS=windows GOARCH=arm64 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-windows-arm64.exe .
macos_arm64: prepare
@echo "Building for macOS (amd64)..."
GOOS=darwin GOARCH=amd64 go build $(BUILDTAGS) -ldflags $(LDFLAGS) -o $(BUILD_DIR)/wiki-go-mac-amd64 .