Skip to content

Commit 05883f3

Browse files
authored
Improve Makefile by combining all build targets for different platforms into a single target (#80)
* Improve Makefile by combining all build targets for different platforms into a single target * Remove instances of plugin name and replace them with the variable * Inject version into the binary on build
1 parent 0f0aa95 commit 05883f3

File tree

2 files changed

+30
-64
lines changed

2 files changed

+30
-64
lines changed

Makefile

Lines changed: 28 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
PROJECT_URL=github.com/gatewayd-io/gatewayd
2-
CONFIG_PACKAGE=${PROJECT_URL}/config
1+
PLUGIN_NAME=gatewayd-plugin-cache
2+
PROJECT_URL=github.com/gatewayd-io/$(PLUGIN_NAME)
3+
CONFIG_PACKAGE=${PROJECT_URL}/plugin
34
LAST_TAGGED_COMMIT=$(shell git rev-list --tags --max-count=1)
4-
VERSION=$(shell git describe --tags ${LAST_TAGGED_COMMIT})
5-
TIMESTAMP=$(shell date -u +"%FT%T%z")
6-
VERSION_DETAILS=${TIMESTAMP}/${LAST_TAGGED_COMMIT_SHORT}
7-
EXTRA_LDFLAGS=-X ${CONFIG_PACKAGE}.Version=${VERSION} -X ${CONFIG_PACKAGE}.VersionDetails=${VERSION_DETAILS}
8-
FILES=gatewayd-plugin-cache checksum.txt gatewayd_plugin.yaml README.md LICENSE
5+
VERSION=$(shell git describe --tags ${LAST_TAGGED_COMMIT}) | sed 's/^v//'
6+
EXTRA_LDFLAGS=-X ${CONFIG_PACKAGE}.Version=${VERSION}
7+
FILES=$(PLUGIN_NAME) checksum.txt gatewayd_plugin.yaml README.md LICENSE
98

109
tidy:
1110
@go mod tidy
@@ -14,7 +13,7 @@ test:
1413
@go test -v ./...
1514

1615
checksum:
17-
@sha256sum -b gatewayd-plugin-cache
16+
@sha256sum -b $(PLUGIN_NAME)
1817

1918
update-all:
2019
@go get -u ./...
@@ -25,58 +24,24 @@ build-dev: tidy
2524
create-build-dir:
2625
@mkdir -p dist
2726

28-
build-linux-amd64: tidy
29-
@echo "Building gatewayd ${VERSION} for linux-amd64"
30-
@mkdir -p dist/linux-amd64
31-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/linux-amd64/
32-
@GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/linux-amd64/gatewayd-plugin-cache
33-
@sha256sum dist/linux-amd64/gatewayd-plugin-cache | sed 's/dist\/linux-amd64\///g' >> dist/linux-amd64/checksum.txt
34-
@tar czf dist/gatewayd-plugin-cache-linux-amd64-${VERSION}.tar.gz -C ./dist/linux-amd64/ ${FILES}
35-
@sha256sum dist/gatewayd-plugin-cache-linux-amd64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
36-
37-
build-linux-arm64:
38-
@echo "Building gatewayd ${VERSION} for linux-arm64"
39-
@mkdir -p dist/linux-arm64
40-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/linux-arm64/
41-
@GOOS=linux GOARCH=arm64 CGO_ENABLED=0 CC=aarch64-linux-gnu-gcc go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/linux-arm64/gatewayd-plugin-cache
42-
@sha256sum dist/linux-arm64/gatewayd-plugin-cache | sed 's/dist\/linux-arm64\///g' >> dist/linux-arm64/checksum.txt
43-
@tar czf dist/gatewayd-plugin-cache-linux-arm64-${VERSION}.tar.gz -C ./dist/linux-arm64/ ${FILES}
44-
@sha256sum dist/gatewayd-plugin-cache-linux-arm64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
45-
46-
build-darwin-amd64:
47-
@echo "Building gatewayd ${VERSION} for darwin-arm64"
48-
@mkdir -p dist/darwin-amd64
49-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/darwin-amd64/
50-
@GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/darwin-amd64/gatewayd-plugin-cache
51-
@shasum -a 256 dist/darwin-amd64/gatewayd-plugin-cache | sed 's/dist\/darwin-amd64\///g' >> dist/darwin-amd64/checksum.txt
52-
@tar czf dist/gatewayd-plugin-cache-darwin-amd64-${VERSION}.tar.gz -C ./dist/darwin-amd64/ ${FILES}
53-
@shasum -a 256 dist/gatewayd-plugin-cache-darwin-amd64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
54-
55-
build-darwin-arm64:
56-
@echo "Building gatewayd ${VERSION} for darwin-arm64"
57-
@mkdir -p dist/darwin-arm64
58-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/darwin-arm64/
59-
@GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/darwin-arm64/gatewayd-plugin-cache
60-
@shasum -a 256 dist/darwin-arm64/gatewayd-plugin-cache | sed 's/dist\/darwin-arm64\///g' >> dist/darwin-arm64/checksum.txt
61-
@tar czf dist/gatewayd-plugin-cache-darwin-arm64-${VERSION}.tar.gz -C ./dist/darwin-arm64/ ${FILES}
62-
@shasum -a 256 dist/gatewayd-plugin-cache-darwin-arm64-${VERSION}.tar.gz | sed 's/dist\///g' >> dist/checksums.txt
63-
64-
build-windows-amd64:
65-
@echo "Building gatewayd ${VERSION} for windows-amd64"
66-
@mkdir -p dist/windows-amd64
67-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/windows-amd64/
68-
@GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/windows-amd64/gatewayd-plugin-cache.exe
69-
@sha256sum dist/windows-amd64/gatewayd-plugin-cache.exe | sed 's/dist\/windows-amd64\///g' >> dist/windows-amd64/checksum.txt
70-
@zip -r dist/gatewayd-plugin-cache-windows-amd64-${VERSION}.zip -j ./dist/windows-amd64/
71-
@sha256sum dist/gatewayd-plugin-cache-windows-amd64-${VERSION}.zip | sed 's/dist\///g' >> dist/checksums.txt
72-
73-
build-windows-arm64:
74-
@echo "Building gatewayd ${VERSION} for windows-arm64"
75-
@mkdir -p dist/windows-arm64
76-
@cp README.md LICENSE gatewayd_plugin.yaml ./dist/windows-arm64/
77-
@GOOS=windows GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o dist/windows-arm64/gatewayd-plugin-cache.exe
78-
@sha256sum dist/windows-arm64/gatewayd-plugin-cache.exe | sed 's/dist\/windows-arm64\///g' >> dist/windows-arm64/checksum.txt
79-
@zip -r dist/gatewayd-plugin-cache-windows-arm64-${VERSION}.zip -j ./dist/windows-arm64/
80-
@sha256sum dist/gatewayd-plugin-cache-windows-arm64-${VERSION}.zip | sed 's/dist\///g' >> dist/checksums.txt
81-
82-
build-release: tidy create-build-dir build-linux-amd64 build-linux-arm64 build-darwin-amd64 build-darwin-arm64 build-windows-amd64 build-windows-arm64
27+
build-release: tidy create-build-dir
28+
@echo "Building gatewayd ${VERSION} for release"
29+
@$(MAKE) build-platform GOOS=linux GOARCH=amd64 OUTPUT_DIR=dist/linux-amd64
30+
@$(MAKE) build-platform GOOS=linux GOARCH=arm64 OUTPUT_DIR=dist/linux-arm64
31+
@$(MAKE) build-platform GOOS=darwin GOARCH=amd64 OUTPUT_DIR=dist/darwin-amd64
32+
@$(MAKE) build-platform GOOS=darwin GOARCH=arm64 OUTPUT_DIR=dist/darwin-arm64
33+
@$(MAKE) build-platform GOOS=windows GOARCH=amd64 OUTPUT_DIR=dist/windows-amd64
34+
@$(MAKE) build-platform GOOS=windows GOARCH=arm64 OUTPUT_DIR=dist/windows-arm64
35+
36+
build-platform: tidy
37+
@echo "Building gatewayd ${VERSION} for $(GOOS)-$(GOARCH)"
38+
@mkdir -p $(OUTPUT_DIR)
39+
@cp README.md LICENSE gatewayd_plugin.yaml $(OUTPUT_DIR)/
40+
@GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=0 go build -trimpath -ldflags "-s -w ${EXTRA_LDFLAGS}" -o $(OUTPUT_DIR)/$(PLUGIN_NAME)
41+
@sha256sum $(OUTPUT_DIR)/$(PLUGIN_NAME) | sed 's#$(OUTPUT_DIR)/##g' >> $(OUTPUT_DIR)/checksum.txt
42+
@if [ "$(GOOS)" = "windows" ]; then \
43+
zip -q -r dist/$(PLUGIN_NAME)-$(GOOS)-$(GOARCH)-${VERSION}.zip -j $(OUTPUT_DIR)/; \
44+
else \
45+
tar czf dist/$(PLUGIN_NAME)-$(GOOS)-$(GOARCH)-${VERSION}.tar.gz -C $(OUTPUT_DIR)/ ${FILES}; \
46+
fi
47+
@sha256sum dist/$(PLUGIN_NAME)-$(GOOS)-$(GOARCH)-${VERSION}.* | sed '#dist/##g' >> dist/checksums.txt

plugin/module.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import (
77
)
88

99
var (
10+
Version = "0.0.1"
1011
PluginID = v1.PluginID{
1112
Name: "gatewayd-plugin-cache",
12-
Version: "0.0.1",
13+
Version: Version,
1314
RemoteUrl: "github.com/gatewayd-io/gatewayd-plugin-cache",
1415
}
1516
PluginMap = map[string]goplugin.Plugin{

0 commit comments

Comments
 (0)