Skip to content

Commit b17f231

Browse files
committed
Support cross compiling
1 parent c55449a commit b17f231

File tree

1 file changed

+24
-16
lines changed

1 file changed

+24
-16
lines changed

Makefile

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,42 @@
11
NOW := $(shell date -u +'%Y-%m-%d_%TZ')
22
HEAD_SHA1 := $(shell git rev-parse HEAD)
33
HEAD_TAG := $(shell git describe --tags | grep -e "^v" | sort | tail -1 | cut -b2-)
4-
MACAPP_GO := ~/workspace/macapp.go/macapp.go
54
CODE_SIGN_CERT := Manuel Koch Code Sign
65
APP_NAME := Container-HUD
76

7+
MACAPP_GO := build/macapp.go
8+
9+
SPACE := $(subst ,, )
10+
DARWIN_OS_VERSION := $(subst $(SPACE),.,$(wordlist 1,2,$(subst ., ,$(shell sw_vers -productVersion))))
811
DARWIN_APP_ID := com.manuel-koch.container-hud
912

10-
DARWIN_ARM64_EXE_NAME := container-hud.darwin-arm64
11-
DARWIN_ARM64_DIST_DIR := dist/darwin_arm64
13+
DARWIN_ARM64_BINARY := build/darwin-$(DARWIN_OS_VERSION)-arm64/container-hud.darwin-$(DARWIN_OS_VERSION)-arm64
14+
DARWIN_ARM64_DIST_DIR := dist/darwin-$(DARWIN_OS_VERSION)-arm64
1215
DARWIN_ARM64_APP_BUNDLE := $(DARWIN_ARM64_DIST_DIR)/$(APP_NAME).app
13-
DARWIN_ARM64_DMG := $(DARWIN_ARM64_DIST_DIR)/$(APP_NAME)_darwin-arm64_$(HEAD_TAG).dmg
16+
DARWIN_ARM64_DMG := $(DARWIN_ARM64_DIST_DIR)/$(APP_NAME)_darwin-$(DARWIN_OS_VERSION)-arm64.$(HEAD_TAG).dmg
1417

15-
DARWIN_AMD64_EXE_NAME := container-hud.darwin-amd64
16-
DARWIN_AMD64_DIST_DIR := dist/darwin_amd64
18+
DARWIN_AMD64_BINARY := build/darwin-$(DARWIN_OS_VERSION)-amd64/container-hud.darwin-$(DARWIN_OS_VERSION)-amd64
19+
DARWIN_AMD64_DIST_DIR := dist/darwin-$(DARWIN_OS_VERSION)-amd64
1720
DARWIN_AMD64_APP_BUNDLE := $(DARWIN_AMD64_DIST_DIR)/$(APP_NAME).app
18-
DARWIN_AMD64_DMG := $(DARWIN_AMD64_DIST_DIR)/$(APP_NAME)_darwin-amd64_$(HEAD_TAG).dmg
21+
DARWIN_AMD64_DMG := $(DARWIN_AMD64_DIST_DIR)/$(APP_NAME)_darwin-$(DARWIN_OS_VERSION)-amd64.$(HEAD_TAG).dmg
22+
1923

20-
build/container-hud.%::
24+
container-hud.%:
2125
@echo "*** Building $@"
22-
env GOOS=$(firstword $(subst -, ,$*)) GOARCH=$(lastword $(subst -, ,$*)) go build \
26+
env GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=1 go build \
2327
-ldflags "-s -w -X main.versionTag=$(HEAD_TAG) -X main.versionSha1=$(HEAD_SHA1) -X main.buildDate=$(NOW)" \
2428
-o $@ \
2529
.
2630
@echo "*** Built $@"
2731

28-
build/macapp.go:
32+
$(MACAPP_GO):
2933
@echo "*** Fetching $@"
30-
curl -o build/macapp.go https://gist.githubusercontent.com/mholt/11008646c95d787c30806d3f24b2c844/raw/0c07883ba937f2d066d125ce3efd731adfd899d7/macapp.go
34+
curl -o $(MACAPP_GO) https://gist.githubusercontent.com/mholt/11008646c95d787c30806d3f24b2c844/raw/0c07883ba937f2d066d125ce3efd731adfd899d7/macapp.go
3135
@echo "*** Fetched $@"
3236

3337
%.app:
3438
@echo "*** Building $@ from $<"
35-
go run build/macapp.go \
39+
env GOOS=$(GOOS) GOARCH=$(GOARCH) go run $(MACAPP_GO) \
3640
-assets $(dir $<) \
3741
-bin $(notdir $<) \
3842
-icon ./Icon.png \
@@ -61,17 +65,21 @@ build/macapp.go:
6165
codesign --verbose=4 --display $*
6266
@echo "*** Signed $*"
6367

64-
$(DARWIN_AMD64_APP_BUNDLE): build/$(DARWIN_AMD64_EXE_NAME) build/macapp.go
68+
$(DARWIN_AMD64_APP_BUNDLE): $(DARWIN_AMD64_BINARY) $(MACAPP_GO)
6569
$(DARWIN_AMD64_APP_BUNDLE).signed: $(DARWIN_AMD64_APP_BUNDLE)
6670
$(DARWIN_AMD64_DMG): $(DARWIN_AMD64_APP_BUNDLE) $(DARWIN_AMD64_APP_BUNDLE).signed
6771

68-
darwin_amd64_dmg: $(DARWIN_AMD64_DMG)
72+
darwin_amd64: GOOS=darwin
73+
darwin_amd64: GOARCH=amd64
74+
darwin_amd64: $(DARWIN_AMD64_DMG)
6975

70-
$(DARWIN_ARM64_APP_BUNDLE): build/$(DARWIN_ARM64_EXE_NAME) build/macapp.go
76+
$(DARWIN_ARM64_APP_BUNDLE): $(DARWIN_ARM64_BINARY) $(MACAPP_GO)
7177
$(DARWIN_ARM64_APP_BUNDLE).signed: $(DARWIN_ARM64_APP_BUNDLE)
7278
$(DARWIN_ARM64_DMG): $(DARWIN_ARM64_APP_BUNDLE) $(DARWIN_ARM64_APP_BUNDLE).signed
7379

74-
darwin_arm64_dmg: $(DARWIN_ARM64_DMG)
80+
darwin_arm64: GOOS=darwin
81+
darwin_arm64: GOARCH=arm64
82+
darwin_arm64: $(DARWIN_ARM64_DMG)
7583

7684
.PHONY: clean
7785
clean::

0 commit comments

Comments
 (0)