Files
motr-enclave/Makefile

73 lines
1.7 KiB
Makefile

.PHONY: start deps build sdk dev test test-plugin lint fmt clean help
BINARY := enclave.wasm
BUILD_DIR := example
# === Primary Commands ===
start: deps build sdk dev
deps:
@command -v sqlc >/dev/null || go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
@command -v golangci-lint >/dev/null || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
@bun install
@cd example && bun install
build:
@echo "Building WASM plugin..."
@GOOS=wasip1 GOARCH=wasm go build -buildmode=c-shared -o $(BUILD_DIR)/$(BINARY) .
@echo "Built $(BUILD_DIR)/$(BINARY)"
sdk:
@echo "Building TypeScript SDK..."
@bun run build
@echo "Built dist/enclave.js"
dev:
@echo "Starting dev server at http://localhost:8080"
@cd example && bun run dev
# === Testing ===
test:
@go test -v ./...
test-plugin: build
@echo "Testing generate()..."
@extism call $(BUILD_DIR)/$(BINARY) generate --input '{"credential":"dGVzdC1jcmVkZW50aWFs"}' --wasi
@echo "\nTesting query()..."
@extism call $(BUILD_DIR)/$(BINARY) query --input '{"did":""}' --wasi
test-sdk: sdk
@cd example && bun run test
# === Code Quality ===
lint:
@golangci-lint run ./...
fmt:
@go fmt ./...
@bun run --filter '*' format 2>/dev/null || true
generate:
@sqlc generate
# === Utilities ===
clean:
@rm -f $(BUILD_DIR)/$(BINARY)
@rm -rf dist
help:
@echo "Motr Enclave"
@echo ""
@echo " make start - Full setup + dev server (recommended)"
@echo " make build - Build WASM plugin"
@echo " make sdk - Build TypeScript SDK"
@echo " make dev - Start dev server"
@echo " make test - Run Go tests"
@echo " make test-plugin - Test plugin with Extism CLI"
@echo " make test-sdk - Run SDK tests in browser"
@echo " make clean - Remove build artifacts"