-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (49 loc) · 2.06 KB
/
Copy pathMakefile
File metadata and controls
64 lines (49 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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Host target (override if needed: make host TARGET_OS=linux TARGET_ARCH=amd64)
TARGET_OS ?= darwin
TARGET_ARCH ?= arm64
# Output dirs
HOST_OUT := dist/$(TARGET_OS)-$(TARGET_ARCH)
AGENT_OUT := internal/agentdist/bin
# Git commit hash (empty if not in a git repo or zip download)
GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null)
# Version for user builds: compiled-<commit> if git available, otherwise compiled
USER_VERSION := $(if $(GIT_COMMIT),compiled-$(GIT_COMMIT),compiled)
# Default target: build for users
all: fmt agent host-user
# Development build (for mkenv developers)
dev: fmt agent host-dev
host-user:
mkdir -p $(HOST_OUT)
GOOS=$(TARGET_OS) GOARCH=$(TARGET_ARCH) CGO_ENABLED=0 \
go build -ldflags "-X github.com/0xa1bed0/mkenv/internal/version.Version=$(USER_VERSION)" -o $(HOST_OUT)/mkenv ./cmd/mkenv
host-dev:
mkdir -p $(HOST_OUT)
GOOS=$(TARGET_OS) GOARCH=$(TARGET_ARCH) CGO_ENABLED=0 \
go build -ldflags "-X github.com/0xa1bed0/mkenv/internal/version.Version=local" -o $(HOST_OUT)/mkenv ./cmd/mkenv
fmt:
go fmt ./...
test:
go test ./...
# -------------------------
# Build Linux agent binaries for embedding
# -------------------------
agent:
mkdir -p $(AGENT_OUT)/linux_amd64
mkdir -p $(AGENT_OUT)/linux_arm64
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
go build -o /tmp/mkenv-agent-amd64 ./cmd/mkenv-agent
gzip -9 -c /tmp/mkenv-agent-amd64 > $(AGENT_OUT)/linux_amd64/mkenv-agent.gz
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \
go build -o /tmp/mkenv-agent-arm64 ./cmd/mkenv-agent
gzip -9 -c /tmp/mkenv-agent-arm64 > $(AGENT_OUT)/linux_arm64/mkenv-agent.gz
rm -f /tmp/mkenv-agent-amd64 /tmp/mkenv-agent-arm64
# -------------------------
# Build host binary with explicit version (used by CI)
# -------------------------
host:
ifndef VERSION
$(error VERSION is required for 'make host'. Use 'make' for user builds or 'make dev' for development)
endif
mkdir -p $(HOST_OUT)
GOOS=$(TARGET_OS) GOARCH=$(TARGET_ARCH) CGO_ENABLED=0 \
go build -ldflags "-X github.com/0xa1bed0/mkenv/internal/version.Version=$(VERSION)" -o $(HOST_OUT)/mkenv ./cmd/mkenv