From 82582b87f577eb883ea8699787a016ea25281f2c Mon Sep 17 00:00:00 2001 From: <> Date: Fri, 19 Apr 2024 21:43:41 +0000 Subject: [PATCH 1/6] #5: Add cross-platform builds --- Makefile | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index abda6cc..bc427ac 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,19 @@ .PHONY: build build: - @go build -o bin/ ./cmd/commit + @go build -o bin/ ./cmd/commit + +.PHONY: release +release: + @GOOS=darwin GOARCH=amd64 go build -o bin/macos/commit -ldflags "-s -w" ./cmd/commit + @GOOS=linux GOARCH=amd64 go build -o bin/linux-arm64/commit -ldflags "-s -w" ./cmd/commit + @GOOS=linux GOARCH=386 go build -o bin/commit-linux-x86 -ldflags "-s -w" ./cmd/commit + @GOOS=windows GOARCH=amd64 go build -o bin/windows-arm64/commit -ldflags "-s -w" ./cmd/commit + @GOOS=windows GOARCH=386 go build -o bin/windows-x86/commit -ldflags "-s -w" ./cmd/commit .PHONY: clean clean: - @if [ -f bin/commit ]; then \ - rm bin/commit ; \ + @if [ -d bin/ ]; then \ + rm -rf bin ; \ fi; @go clean From 918ebbf291f919c8b5f0e2fcb96c4fcb7aba7411 Mon Sep 17 00:00:00 2001 From: <> Date: Fri, 19 Apr 2024 21:47:22 +0000 Subject: [PATCH 2/6] #5: Add bin folder to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 0152cb2..6e77a31 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ *.dylib commit !cmd/commit +bin # Test binary, built with `go test -c` *.test From 1f887c7b71dcec671068c62d95f0e2f64c5fc2b4 Mon Sep 17 00:00:00 2001 From: Artem Yelizarov <52959979+artem-y@users.noreply.github.com> Date: Sat, 20 Apr 2024 01:48:49 +0300 Subject: [PATCH 3/6] #5: Build for more platforms when all argument passed --- Makefile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index bc427ac..fbf9cdd 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,18 @@ .PHONY: build build: - @go build -o bin/ ./cmd/commit - -.PHONY: release -release: - @GOOS=darwin GOARCH=amd64 go build -o bin/macos/commit -ldflags "-s -w" ./cmd/commit - @GOOS=linux GOARCH=amd64 go build -o bin/linux-arm64/commit -ldflags "-s -w" ./cmd/commit - @GOOS=linux GOARCH=386 go build -o bin/commit-linux-x86 -ldflags "-s -w" ./cmd/commit - @GOOS=windows GOARCH=amd64 go build -o bin/windows-arm64/commit -ldflags "-s -w" ./cmd/commit - @GOOS=windows GOARCH=386 go build -o bin/windows-x86/commit -ldflags "-s -w" ./cmd/commit + @go build -o bin/commit cmd/commit/main.go +ifeq ($(filter all,$(MAKECMDGOALS)),all) + @GOOS=darwin GOARCH=amd64 go build -o bin/macos-amd64/commit ./cmd/commit/ + @GOOS=darwin GOARCH=arm64 go build -o bin/macos-arm64/commit ./cmd/commit/ + @GOOS=linux GOARCH=386 go build -o bin/linux-386/commit ./cmd/commit/ + @GOOS=linux GOARCH=amd64 go build -o bin/linux-amd64/commit ./cmd/commit/ + @GOOS=linux GOARCH=arm go build -o bin/linux-arm/commit ./cmd/commit/ + @GOOS=linux GOARCH=arm64 go build -o bin/linux-arm64/commit ./cmd/commit/ + @GOOS=windows GOARCH=386 go build -o bin/windows-386/commit ./cmd/commit/ + @GOOS=windows GOARCH=amd64 go build -o bin/windows-amd64/commit ./cmd/commit/ + @GOOS=windows GOARCH=arm go build -o bin/windows-arm/commit ./cmd/commit/ + @GOOS=windows GOARCH=arm64 go build -o bin/windows-arm64/commit ./cmd/commit/ +endif .PHONY: clean clean: From 2345d654a722c15e07531e97add55d5698fafdae Mon Sep 17 00:00:00 2001 From: Artem Yelizarov <52959979+artem-y@users.noreply.github.com> Date: Sun, 21 Apr 2024 01:06:42 +0300 Subject: [PATCH 4/6] #5: Change crossplatform build command to make all --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index fbf9cdd..e13c5eb 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,9 @@ .PHONY: build build: @go build -o bin/commit cmd/commit/main.go -ifeq ($(filter all,$(MAKECMDGOALS)),all) + +.PHONY: all +all: @GOOS=darwin GOARCH=amd64 go build -o bin/macos-amd64/commit ./cmd/commit/ @GOOS=darwin GOARCH=arm64 go build -o bin/macos-arm64/commit ./cmd/commit/ @GOOS=linux GOARCH=386 go build -o bin/linux-386/commit ./cmd/commit/ @@ -12,7 +14,6 @@ ifeq ($(filter all,$(MAKECMDGOALS)),all) @GOOS=windows GOARCH=amd64 go build -o bin/windows-amd64/commit ./cmd/commit/ @GOOS=windows GOARCH=arm go build -o bin/windows-arm/commit ./cmd/commit/ @GOOS=windows GOARCH=arm64 go build -o bin/windows-arm64/commit ./cmd/commit/ -endif .PHONY: clean clean: From a85a50ffab41c31a48f5af319fad1e3645d4d503 Mon Sep 17 00:00:00 2001 From: Artem Yelizarov <52959979+artem-y@users.noreply.github.com> Date: Sun, 21 Apr 2024 05:10:27 +0300 Subject: [PATCH 5/6] #5: Split build-all into multiple platforms --- Makefile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e13c5eb..48021e3 100644 --- a/Makefile +++ b/Makefile @@ -3,13 +3,22 @@ build: @go build -o bin/commit cmd/commit/main.go .PHONY: all -all: +all: windows linux macos + +.PHONY: macos +macos: @GOOS=darwin GOARCH=amd64 go build -o bin/macos-amd64/commit ./cmd/commit/ @GOOS=darwin GOARCH=arm64 go build -o bin/macos-arm64/commit ./cmd/commit/ + +.PHONY: linux +linux: @GOOS=linux GOARCH=386 go build -o bin/linux-386/commit ./cmd/commit/ @GOOS=linux GOARCH=amd64 go build -o bin/linux-amd64/commit ./cmd/commit/ @GOOS=linux GOARCH=arm go build -o bin/linux-arm/commit ./cmd/commit/ @GOOS=linux GOARCH=arm64 go build -o bin/linux-arm64/commit ./cmd/commit/ + +.PHONY: windows +windows: @GOOS=windows GOARCH=386 go build -o bin/windows-386/commit ./cmd/commit/ @GOOS=windows GOARCH=amd64 go build -o bin/windows-amd64/commit ./cmd/commit/ @GOOS=windows GOARCH=arm go build -o bin/windows-arm/commit ./cmd/commit/ From 92670cbb17188245ce0c42b0dc6dc516ae2496ad Mon Sep 17 00:00:00 2001 From: Artem Yelizarov <52959979+artem-y@users.noreply.github.com> Date: Sun, 21 Apr 2024 05:15:47 +0300 Subject: [PATCH 6/6] #5: Pass optimization flags to build for platforms, fix make build --- Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 48021e3..643f1de 100644 --- a/Makefile +++ b/Makefile @@ -1,28 +1,28 @@ .PHONY: build build: - @go build -o bin/commit cmd/commit/main.go + @go build -o bin/commit ./cmd/commit/ .PHONY: all all: windows linux macos .PHONY: macos macos: - @GOOS=darwin GOARCH=amd64 go build -o bin/macos-amd64/commit ./cmd/commit/ - @GOOS=darwin GOARCH=arm64 go build -o bin/macos-arm64/commit ./cmd/commit/ + @GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w" -o bin/macos-amd64/commit ./cmd/commit/ + @GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w" -o bin/macos-arm64/commit ./cmd/commit/ .PHONY: linux linux: - @GOOS=linux GOARCH=386 go build -o bin/linux-386/commit ./cmd/commit/ - @GOOS=linux GOARCH=amd64 go build -o bin/linux-amd64/commit ./cmd/commit/ - @GOOS=linux GOARCH=arm go build -o bin/linux-arm/commit ./cmd/commit/ - @GOOS=linux GOARCH=arm64 go build -o bin/linux-arm64/commit ./cmd/commit/ + @GOOS=linux GOARCH=386 go build -ldflags "-s -w" -o bin/linux-386/commit ./cmd/commit/ + @GOOS=linux GOARCH=amd64 go build -ldflags "-s -w" -o bin/linux-amd64/commit ./cmd/commit/ + @GOOS=linux GOARCH=arm go build -ldflags "-s -w" -o bin/linux-arm/commit ./cmd/commit/ + @GOOS=linux GOARCH=arm64 go build -ldflags "-s -w" -o bin/linux-arm64/commit ./cmd/commit/ .PHONY: windows windows: - @GOOS=windows GOARCH=386 go build -o bin/windows-386/commit ./cmd/commit/ - @GOOS=windows GOARCH=amd64 go build -o bin/windows-amd64/commit ./cmd/commit/ - @GOOS=windows GOARCH=arm go build -o bin/windows-arm/commit ./cmd/commit/ - @GOOS=windows GOARCH=arm64 go build -o bin/windows-arm64/commit ./cmd/commit/ + @GOOS=windows GOARCH=386 go build -ldflags "-s -w" -o bin/windows-386/commit ./cmd/commit/ + @GOOS=windows GOARCH=amd64 go build -ldflags "-s -w" -o bin/windows-amd64/commit ./cmd/commit/ + @GOOS=windows GOARCH=arm go build -ldflags "-s -w" -o bin/windows-arm/commit ./cmd/commit/ + @GOOS=windows GOARCH=arm64 go build -ldflags "-s -w" -o bin/windows-arm64/commit ./cmd/commit/ .PHONY: clean clean: