-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
59 lines (49 loc) · 1.54 KB
/
Makefile
File metadata and controls
59 lines (49 loc) · 1.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
# Variables
GO_BUILD_FLAGS=-gcflags "all=-N -l" --ldflags "-s -w"
BIN_DIR=bin
BINARY_NAME=awsctl
# Platform and architecture for cross-compilation
GO_LINUX=linux
GO_AMD64=amd64
GO_ARM64=arm64
GO_WINDOWS=windows
GO_DARWIN=darwin
# Default
run-sso:
@echo "Running the project locally..."
go run main.go sso init
run-bast:
@echo "Running the project locally..."
go run main.go bastion
# Build binaries for Linux
.PHONY: build-linux
build-linux:
@echo "Building for Linux (AMD64 and ARM64)..."
go build $(GO_BUILD_FLAGS) -o $(BIN_DIR)/$(BINARY_NAME)-linux-amd64 main.go
GOOS=$(GO_LINUX) GOARCH=$(GO_ARM64) go build $(GO_BUILD_FLAGS) -o $(BIN_DIR)/$(BINARY_NAME)-linux-arm64 main.go
# Build binaries for Windows
.PHONY: build-windows
build-windows:
@echo "Building for Windows (AMD64)..."
GOOS=$(GO_WINDOWS) GOARCH=$(GO_AMD64) go build $(GO_BUILD_FLAGS) -o $(BIN_DIR)/$(BINARY_NAME)-windows-amd64.exe main.go
# Build binaries for macOS
.PHONY: build-darwin
build-darwin:
@echo "Building for macOS (AMD64 and ARM64)..."
GOOS=$(GO_DARWIN) GOARCH=$(GO_AMD64) go build $(GO_BUILD_FLAGS) -o $(BIN_DIR)/$(BINARY_NAME)-darwin-amd64 main.go
GOOS=$(GO_DARWIN) GOARCH=$(GO_ARM64) go build $(GO_BUILD_FLAGS) -o $(BIN_DIR)/$(BINARY_NAME)-darwin-arm64 main.go
# Target to build the binaries for all platforms
.PHONY: all
all: build-linux build-windows build-darwin
.PHONY: fmt
fmt:
@echo "Formatting Go code..."
go fmt ./...
.PHONY: gmt
gmt:
@echo "Installing Go dependencies..."
go mod tidy
.PHONY: clean
clean:
@echo "Cleaning up the bin directory..."
rm -rf $(BIN_DIR)