-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
48 lines (38 loc) · 2.06 KB
/
Copy pathMakefile
File metadata and controls
48 lines (38 loc) · 2.06 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
BINARY_NAME=dbterm
VERSION?=$(shell awk -F'|' '/^[[:space:]]*#/ {next} /^[[:space:]]*$$/ {next} {gsub(/^[[:space:]]+|[[:space:]]+$$/, "", $$1); print $$1; exit}' cmd/dbterm/releases.txt 2>/dev/null || echo dev)
COMMIT?=$(shell git rev-parse --short HEAD 2>/dev/null || echo dev)
GO_BUILD_FLAGS=-trimpath -buildvcs=false -ldflags="-s -w -buildid= -X main.version=$(VERSION) -X main.commit=$(COMMIT)"
.PHONY: all build clean test release release-core release-ios deb apt-repo
all: build
build:
CGO_ENABLED=0 go build $(GO_BUILD_FLAGS) -o $(BINARY_NAME) ./cmd/dbterm
clean:
rm -f $(BINARY_NAME)
rm -rf dist/
test:
go test ./...
release: release-core release-ios
deb: release-core
./scripts/build-deb.sh $(VERSION) dist
apt-repo: deb
./scripts/build-apt-repo.sh dist/apt dist
release-core:
mkdir -p dist
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $(GO_BUILD_FLAGS) -o dist/$(BINARY_NAME)-linux-amd64 ./cmd/dbterm
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build $(GO_BUILD_FLAGS) -o dist/$(BINARY_NAME)-linux-arm64 ./cmd/dbterm
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build $(GO_BUILD_FLAGS) -o dist/$(BINARY_NAME)-darwin-amd64 ./cmd/dbterm
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build $(GO_BUILD_FLAGS) -o dist/$(BINARY_NAME)-darwin-arm64 ./cmd/dbterm
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build $(GO_BUILD_FLAGS) -o dist/$(BINARY_NAME)-windows-amd64.exe ./cmd/dbterm
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build $(GO_BUILD_FLAGS) -o dist/$(BINARY_NAME)-windows-arm64.exe ./cmd/dbterm
release-ios:
mkdir -p dist
@if [ "$$(uname -s)" != "Darwin" ]; then \
echo "Skipping iOS build (requires macOS + Xcode CLI tools)."; \
else \
SDKROOT="$$(xcrun --sdk iphoneos --show-sdk-path)"; \
CC="$$(xcrun --sdk iphoneos --find clang)"; \
GOOS=ios GOARCH=arm64 CGO_ENABLED=1 CC="$$CC" SDKROOT="$$SDKROOT" \
CGO_CFLAGS="-isysroot $$SDKROOT -miphoneos-version-min=13.0" \
CGO_LDFLAGS="-isysroot $$SDKROOT -miphoneos-version-min=13.0" \
go build -trimpath -buildvcs=false -buildmode=c-archive -ldflags="-s -w -buildid=" -o dist/$(BINARY_NAME)-ios-arm64.a ./cmd/dbterm; \
fi