2026-01-07 16:46:29 -05:00
|
|
|
.PHONY: all generate build build-debug build-opt test test-cover test-plugin test-browser lint fmt vet clean tidy deps verify serve help
|
2026-01-07 14:20:23 -05:00
|
|
|
|
|
|
|
|
MODULE := enclave
|
2026-01-07 14:26:25 -05:00
|
|
|
BINARY := enclave.wasm
|
2026-01-07 14:20:23 -05:00
|
|
|
BUILD_DIR := build
|
|
|
|
|
|
|
|
|
|
all: generate build
|
|
|
|
|
|
|
|
|
|
generate:
|
|
|
|
|
@sqlc generate
|
|
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
@mkdir -p $(BUILD_DIR)
|
2026-01-07 16:46:29 -05:00
|
|
|
@GOOS=wasip1 GOARCH=wasm go build -o $(BUILD_DIR)/$(BINARY) .
|
2026-01-07 14:20:23 -05:00
|
|
|
|
2026-01-07 14:26:25 -05:00
|
|
|
build-debug:
|
2026-01-07 14:20:23 -05:00
|
|
|
@mkdir -p $(BUILD_DIR)
|
2026-01-07 16:46:29 -05:00
|
|
|
@GOOS=wasip1 GOARCH=wasm go build -gcflags="all=-N -l" -o $(BUILD_DIR)/$(BINARY) .
|
2026-01-07 14:26:25 -05:00
|
|
|
|
|
|
|
|
build-opt:
|
|
|
|
|
@mkdir -p $(BUILD_DIR)
|
2026-01-07 16:46:29 -05:00
|
|
|
@GOOS=wasip1 GOARCH=wasm go build -ldflags="-s -w" -o $(BUILD_DIR)/$(BINARY) .
|
2026-01-07 14:26:25 -05:00
|
|
|
@wasm-opt -Os $(BUILD_DIR)/$(BINARY) -o $(BUILD_DIR)/$(BINARY)
|
2026-01-07 14:20:23 -05:00
|
|
|
|
|
|
|
|
test:
|
|
|
|
|
@go test -v ./...
|
|
|
|
|
|
|
|
|
|
test-cover:
|
|
|
|
|
@go test -coverprofile=coverage.out ./...
|
|
|
|
|
@go tool cover -html=coverage.out -o coverage.html
|
|
|
|
|
|
2026-01-07 14:26:25 -05:00
|
|
|
test-plugin:
|
2026-01-07 16:46:29 -05:00
|
|
|
@extism call $(BUILD_DIR)/$(BINARY) generate --input '{"credential":"dGVzdA=="}' --wasi
|
|
|
|
|
|
|
|
|
|
test-browser: build
|
|
|
|
|
@echo "Open http://localhost:8080/example/ in your browser"
|
|
|
|
|
@python3 -m http.server 8080
|
|
|
|
|
|
|
|
|
|
serve: build
|
|
|
|
|
@echo "Open http://localhost:8080/example/ in your browser"
|
|
|
|
|
@python3 -m http.server 8080
|
2026-01-07 14:26:25 -05:00
|
|
|
|
2026-01-07 14:20:23 -05:00
|
|
|
lint:
|
|
|
|
|
@golangci-lint run ./...
|
|
|
|
|
|
|
|
|
|
fmt:
|
|
|
|
|
@go fmt ./...
|
|
|
|
|
@gofumpt -w .
|
|
|
|
|
|
|
|
|
|
vet:
|
|
|
|
|
@go vet ./...
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
@rm -rf $(BUILD_DIR)
|
|
|
|
|
@rm -f coverage.out coverage.html
|
|
|
|
|
|
|
|
|
|
tidy:
|
|
|
|
|
@go mod tidy
|
|
|
|
|
|
|
|
|
|
deps:
|
|
|
|
|
@go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
|
|
|
|
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
|
|
|
|
@go install mvdan.cc/gofumpt@latest
|
2026-01-07 14:26:25 -05:00
|
|
|
@echo "Install Extism CLI: https://extism.org/docs/install"
|
2026-01-07 14:20:23 -05:00
|
|
|
|
|
|
|
|
verify: fmt vet lint test
|
|
|
|
|
|
|
|
|
|
help:
|
2026-01-07 16:46:29 -05:00
|
|
|
@echo "Motr Enclave - Extism Plugin (Go 1.25/wasip1)"
|
2026-01-07 14:26:25 -05:00
|
|
|
@echo ""
|
|
|
|
|
@echo "Build targets:"
|
2026-01-07 16:46:29 -05:00
|
|
|
@echo " build - Build WASM plugin for wasip1"
|
2026-01-07 14:26:25 -05:00
|
|
|
@echo " build-debug - Build with debug symbols"
|
|
|
|
|
@echo " build-opt - Build optimized (requires wasm-opt)"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Development targets:"
|
2026-01-07 14:20:23 -05:00
|
|
|
@echo " generate - Run sqlc to generate Go code"
|
2026-01-07 16:46:29 -05:00
|
|
|
@echo " test - Run tests"
|
2026-01-07 14:20:23 -05:00
|
|
|
@echo " test-cover - Run tests with coverage"
|
2026-01-07 14:26:25 -05:00
|
|
|
@echo " test-plugin - Test plugin with Extism CLI"
|
2026-01-07 16:46:29 -05:00
|
|
|
@echo " test-browser- Build and serve for browser testing"
|
|
|
|
|
@echo " serve - Start local server for example/"
|
2026-01-07 14:20:23 -05:00
|
|
|
@echo " lint - Run golangci-lint"
|
|
|
|
|
@echo " fmt - Format code"
|
|
|
|
|
@echo " vet - Run go vet"
|
2026-01-07 14:26:25 -05:00
|
|
|
@echo " verify - Run fmt, vet, lint, and test"
|
|
|
|
|
@echo ""
|
|
|
|
|
@echo "Utility targets:"
|
2026-01-07 14:20:23 -05:00
|
|
|
@echo " clean - Remove build artifacts"
|
|
|
|
|
@echo " tidy - Run go mod tidy"
|
|
|
|
|
@echo " deps - Install development dependencies"
|