|
2 | 2 | # |
3 | 3 | # devctl |
4 | 4 | # |
5 | | -# https://github.com/giantswarm/devctl/blob/bf7f386ac6a4e807dde959892df1369fee6d789f/pkg/gen/input/makefile/internal/file/Makefile.gen.go.mk.template |
| 5 | +# https://github.com/giantswarm/devctl/blob/57c68171868158d915a92dd45201bbeadaa17214/pkg/gen/input/makefile/internal/file/Makefile.gen.go.mk.template |
6 | 6 | # |
7 | 7 |
|
8 | 8 | APPLICATION := $(shell go list -m | cut -d '/' -f 3) |
9 | 9 | BUILDTIMESTAMP := $(shell date -u '+%FT%TZ') |
10 | 10 | GITSHA1 := $(shell git rev-parse --verify HEAD) |
11 | 11 | MODULE := $(shell go list -m) |
| 12 | +# main() is usually in `main.go`, but sometimes in `cmd/main.go` (for example in newer kubebuilder projects) |
| 13 | +MAIN_SOURCE := $(shell if test -e cmd/main.go; then echo cmd/main.go; else echo main.go; fi) |
12 | 14 | OS := $(shell go env GOOS) |
13 | 15 | SOURCES := $(shell find . -name '*.go') |
14 | 16 | VERSION := $(shell architect project version) |
@@ -63,25 +65,25 @@ $(APPLICATION)-windows-amd64.exe: $(APPLICATION)-v$(VERSION)-windows-amd64.exe |
63 | 65 |
|
64 | 66 | $(APPLICATION)-v$(VERSION)-%-amd64: $(SOURCES) |
65 | 67 | @echo "====> $@" |
66 | | - CGO_ENABLED=0 GOOS=$* GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o $@ . |
| 68 | + CGO_ENABLED=0 GOOS=$* GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o $@ "$(MAIN_SOURCE)" |
67 | 69 |
|
68 | 70 | $(APPLICATION)-v$(VERSION)-%-arm64: $(SOURCES) |
69 | 71 | @echo "====> $@" |
70 | | - CGO_ENABLED=0 GOOS=$* GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o $@ . |
| 72 | + CGO_ENABLED=0 GOOS=$* GOARCH=arm64 go build -trimpath -ldflags "$(LDFLAGS)" -o $@ "$(MAIN_SOURCE)" |
71 | 73 |
|
72 | 74 | $(APPLICATION)-v$(VERSION)-windows-amd64.exe: $(SOURCES) |
73 | 75 | @echo "====> $@" |
74 | | - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o $@ . |
| 76 | + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags "$(LDFLAGS)" -o $@ "$(MAIN_SOURCE)" |
75 | 77 |
|
76 | 78 | .PHONY: install |
77 | 79 | install: ## Install the application. |
78 | 80 | @echo "====> $@" |
79 | | - go install -ldflags "$(LDFLAGS)" . |
| 81 | + go build -ldflags "$(LDFLAGS)" -o "$(shell go env GOPATH)/bin/$(APPLICATION)" "$(MAIN_SOURCE)" |
80 | 82 |
|
81 | 83 | .PHONY: run |
82 | 84 | run: ## Runs go run main.go. |
83 | 85 | @echo "====> $@" |
84 | | - go run -ldflags "$(LDFLAGS)" -race . |
| 86 | + go run -ldflags "$(LDFLAGS)" -race "$(MAIN_SOURCE)" |
85 | 87 |
|
86 | 88 | .PHONY: clean |
87 | 89 | clean: ## Cleans the binary. |
|
0 commit comments