mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 09:21:39 +00:00
121 lines
3.7 KiB
Makefile
121 lines
3.7 KiB
Makefile
#!/usr/bin/make -f
|
|
|
|
# Output configuration - dual output for both plugin and ES package
|
|
GIT_ROOT := $(shell git rev-parse --show-toplevel)
|
|
PLUGIN_DIR := $(GIT_ROOT)/x/dwn/client/plugin
|
|
ES_PACKAGE_DIR := $(GIT_ROOT)/packages/es/src/plugin
|
|
OUTPUT_FILE := plugin.wasm
|
|
PLUGIN_PATH := $(PLUGIN_DIR)/vault.wasm
|
|
ES_PATH := $(ES_PACKAGE_DIR)/$(OUTPUT_FILE)
|
|
|
|
# Build configuration for WASM
|
|
GOOS := wasip1
|
|
GOARCH := wasm
|
|
|
|
# Version information
|
|
VERSION := $(shell echo $(shell git describe --tags 2>/dev/null || echo "dev") | sed 's/^v//')
|
|
COMMIT := $(shell git log -1 --format='%H')
|
|
|
|
.PHONY: all build clean install test version help
|
|
|
|
all: build
|
|
|
|
build:
|
|
@echo "Building vault WASM module..."
|
|
@echo "Targets: Plugin and ES package"
|
|
@mkdir -p $(PLUGIN_DIR)
|
|
@mkdir -p $(ES_PACKAGE_DIR)
|
|
@GOOS=$(GOOS) GOARCH=$(GOARCH) go build -o $(PLUGIN_PATH) main.go
|
|
@cp $(PLUGIN_PATH) $(ES_PATH)
|
|
@echo "✅ Vault WASM module built successfully"
|
|
@echo "Plugin output: $(PLUGIN_PATH)"
|
|
@echo "ES package output: $(ES_PATH)"
|
|
@ls -lh $(PLUGIN_PATH) | awk '{print "Plugin size: " $$5}'
|
|
@ls -lh $(ES_PATH) | awk '{print "ES package size: " $$5}'
|
|
|
|
tidy:
|
|
@echo "Tidying vault build artifacts..."
|
|
@go mod tidy
|
|
@echo "✅ Tidy complete"
|
|
|
|
test:
|
|
@echo "Running vault tests..."
|
|
@go test -v ./...
|
|
@cd $(GIT_ROOT) && go test -C . -mod=readonly -v github.com/sonr-io/sonr/x/dwn/client/plugin/...
|
|
|
|
clean:
|
|
@echo "Cleaning vault build artifacts..."
|
|
@rm -f $(PLUGIN_PATH)
|
|
@rm -f $(ES_PATH)
|
|
@echo "✅ Clean complete"
|
|
|
|
release:
|
|
@echo "Creating vault release..."
|
|
@cd $(GIT_ROOT) && cz --config cmd/vault/.cz.toml --no-raise 6,21 bump --yes --increment PATCH
|
|
|
|
snapshot:
|
|
@echo "Dry-Run Bumping Vault version..."
|
|
@cd $(GIT_ROOT) && cz --config cmd/vault/.cz.toml bump --yes --dry-run --no-verify --increment PATCH
|
|
@echo "Creating vault snapshots for all platforms..."
|
|
@cd $(GIT_ROOT) && goreleaser release --snapshot --clean -f cmd/vault/.goreleaser.yml
|
|
|
|
version:
|
|
@echo "Vault WASM Module"
|
|
@echo "================="
|
|
@echo "Version: $(VERSION)"
|
|
@echo "Commit: $(COMMIT)"
|
|
@echo "Target OS: $(GOOS)"
|
|
@echo "Target Arch: $(GOARCH)"
|
|
@echo "Plugin output: $(PLUGIN_PATH)"
|
|
@echo "ES output: $(ES_PATH)"
|
|
|
|
verify: build
|
|
@echo "Verifying WASM modules..."
|
|
@if [ -f "$(PLUGIN_PATH)" ]; then \
|
|
file "$(PLUGIN_PATH)"; \
|
|
echo "✅ Plugin WASM file exists"; \
|
|
else \
|
|
echo "❌ Plugin WASM file not found"; \
|
|
exit 1; \
|
|
fi
|
|
@if [ -f "$(ES_PATH)" ]; then \
|
|
file "$(ES_PATH)"; \
|
|
echo "✅ ES package WASM file exists"; \
|
|
else \
|
|
echo "❌ ES package WASM file not found"; \
|
|
exit 1; \
|
|
fi
|
|
@echo "Plugin size: $$(du -h $(PLUGIN_PATH) | cut -f1)"
|
|
@echo "ES size: $$(du -h $(ES_PATH) | cut -f1)"
|
|
@echo "✅ Verification complete"
|
|
|
|
help:
|
|
@echo "Vault WASM Module Makefile"
|
|
@echo "=========================="
|
|
@echo ""
|
|
@echo "This Makefile builds the vault WebAssembly module for both the"
|
|
@echo "Sonr blockchain plugin system and the @sonr.io/es package."
|
|
@echo ""
|
|
@echo "Available targets:"
|
|
@echo " build - Build vault WASM module (default)"
|
|
@echo " clean - Remove built WASM artifacts"
|
|
@echo " test - Run vault tests"
|
|
@echo " tidy - Tidy Go module dependencies"
|
|
@echo " version - Display version information"
|
|
@echo " verify - Build and verify the WASM modules"
|
|
@echo " help - Show this help message"
|
|
@echo ""
|
|
@echo "Output locations:"
|
|
@echo " Plugin: $(PLUGIN_PATH)"
|
|
@echo " ES Package: $(ES_PATH)"
|
|
@echo ""
|
|
@echo "Integration:"
|
|
@echo " The WASM module is built for two purposes:"
|
|
@echo " 1. Plugin system in x/dwn/client/plugin"
|
|
@echo " 2. ES package for browser distribution via jsDelivr"
|
|
@echo ""
|
|
@echo "Examples:"
|
|
@echo " make build # Build WASM module to both locations"
|
|
@echo " make verify # Build and verify both outputs"
|
|
@echo " make clean # Remove all artifacts"
|