46 lines
1.5 KiB
Makefile
46 lines
1.5 KiB
Makefile
BINARY := openclaw
|
|
VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
|
|
LDFLAGS := -s -w -X main.version=$(VERSION)
|
|
GOFLAGS := -trimpath
|
|
DIST := dist
|
|
export CGO_ENABLED := 0
|
|
|
|
.PHONY: all build test vet race run cross linux-amd64 linux-arm64 linux-armv7 android-arm64 android-armv7 docker clean
|
|
|
|
all: vet test build
|
|
|
|
build:
|
|
go build $(GOFLAGS) -ldflags '$(LDFLAGS)' -o bin/$(BINARY) ./cmd/openclaw
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
race:
|
|
CGO_ENABLED=1 go test -race ./...
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
run: build
|
|
./bin/$(BINARY) -config config.yaml
|
|
|
|
cross: linux-amd64 linux-arm64 linux-armv7 android-arm64 android-armv7
|
|
|
|
linux-amd64:
|
|
GOOS=linux GOARCH=amd64 go build $(GOFLAGS) -ldflags '$(LDFLAGS)' -o $(DIST)/$(BINARY)-linux-amd64 ./cmd/openclaw
|
|
linux-arm64:
|
|
GOOS=linux GOARCH=arm64 go build $(GOFLAGS) -ldflags '$(LDFLAGS)' -o $(DIST)/$(BINARY)-linux-arm64 ./cmd/openclaw
|
|
linux-armv7:
|
|
GOOS=linux GOARCH=arm GOARM=7 go build $(GOFLAGS) -ldflags '$(LDFLAGS)' -o $(DIST)/$(BINARY)-linux-armv7 ./cmd/openclaw
|
|
# Termux on Android: GOOS=android, pure Go (no NDK needed thanks to CGO_ENABLED=0)
|
|
android-arm64:
|
|
GOOS=android GOARCH=arm64 go build $(GOFLAGS) -ldflags '$(LDFLAGS)' -o $(DIST)/$(BINARY)-termux-arm64 ./cmd/openclaw
|
|
# android/arm needs cgo+NDK; a static linux/arm binary runs fine in Termux instead.
|
|
android-armv7:
|
|
GOOS=linux GOARCH=arm GOARM=7 go build $(GOFLAGS) -ldflags '$(LDFLAGS)' -o $(DIST)/$(BINARY)-termux-armv7 ./cmd/openclaw
|
|
|
|
docker:
|
|
docker build -t openclaw:$(VERSION) .
|
|
|
|
clean:
|
|
rm -rf bin $(DIST)
|